- 前言
- 一、框架引入
- 二、Django框架
- 1.介绍
- 2.项目的创建与运行
- 3.Django的URL(了解不深,稍后处理)
- 4.Django的URL(了解不深,稍后处理)
- 1.指令
- 2.Model模型的实例
- 5.Django的视图层
- 6. Django的模板层
- 总结
前言
值得学习!!
一、框架引入
- 什么是框架?
框架就是程序的骨架,主体结构,也是个半成品。 - 框架的优缺点
可重用、成熟,稳健、易扩展、易维护 - Python中常见的框架
. 大包大揽 Django 被官方称之为完美主义者的Web框架。
. 力求精简 web.py和Tornado
. 新生代微框架 Flask和Bottle - Web框架中的一些概念: MVC和MVT
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、Django框架 1.介绍 - Django是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计 - 由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此您可以专注于编写应用程序,而无需重新创建轮子。 它是免费的和开源的。 - 被官方称之为完美主义者的Web框架。 - Django可以更快地构建更好的Web应用程序并减少代码 - 官方网址:https://www.djangoproject.com/import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.项目的创建与运行
-
创建项目
django-admin startproject myweb
-
运行开发服务器
python manage.py runserver
python manage.py runserver 0:8000 -
创建一个应用程序
python manage.py startapp myapp
-
创建项目
django-admin startproject myweb
-
运行开发服务器
python manage.py runserver
python manage.py runserver 0:8000 -
创建一个应用程序
python manage.py startapp myapp
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
4.Django的URL(了解不深,稍后处理)
1.指令
-
生成迁移文件
python manage.py makemigrations
-
执行迁移
python manage.py migrate
-
使用模型类进行CRUD操作
- 模型实例对象是通过objects属性获取,即Django为模型类提供的管理器。
objects:是Manager类型的对象,用于与数据库进行交互 - 实例的方法 str(self):
重写object方法,此方法在将对象转换成字符串时会被调用 save(
):将模型对象保存到数据表中 delete( ):将模型对象从数据表中删除
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
5.Django的视图层
-
Django的View视图介绍 Django框架中的视图(View)是用来负责处理用户请求和返回响应的逻辑程序
视图(View)简而言之就是一个Python的函数或方法,接受处理Web请求。
视图的响应可以是网页的HTML内容,重定向或404错误,XML文档或图像。
视图的代码按惯例是放置一个名为views.py的文件中,此文件放在项目或应用程序目录中。(其实视图文件名可以自己定义) -
HttpResponse对象 在django.http模块中定义了HttpResponse对象的API
HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建
在每一个视图函数中必须返回一个HttpResponse对象,当然也可以是HttpResponse子对象 -
HttpRequest对象
属性 :下面除非特别说明,属性都是只读的
path:一个字符串,表示请求的页面的完整路径,不包含域名
method:一个字符串,表示请求使用的HTTP方法,常用值包括:‘GET’、'POST’
encoding:一个字符串,表示提交的数据的编码方式: 一般为utf-8
GET:一个类似于字典的对象,包含get请求方式的所有参数
POST:一个类似于字典的对象,包含post请求方式的所有参数
FILES:一个类似于字典的对象,包含所有的上传文件
cookieS:一个标准的Python字典,包含所有的cookie,键和值都为字符串
session:一个既可读又可写的类似于字典对象,表示当前会话,需Django 启用会话才可用。 -
方法:
is_ajax():如果请求是通过XMLHttpRequest发起的,则返回True
QueryDict对象 -
request对象的属性GET、POST都是QueryDict类型的对象
-
与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
-
方法get():根据键获取值
只能获取键的一个值
如果一个键同时拥有多个值,获取最后一个值 -
方法getlist():根据键获取值
将键的值以列表返回,可以获取一个键的多个值
dict.getlist(‘键’,default) -
验证码实战
在用户注册、登录页面,为了防止暴力请求,可以加入验证码功能,如果验证码错误,则不需要继续处理,可以减轻一些服务器的压力
使用验证码也是一种有效的防止crsf的方法
需要安装扩展:pip3 install pillow
- Django的模板介绍
- 作为Web 框架,Django 需要一种很便利的方法来动态地生成HTML。常见做法是使用模板。
- 模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。
- 模板任务就是输出数据,输出方式:直接输出,过滤输出、判断输出,循环输出
- 在Django框架中如何使用模板:
- 在项目的settings.py配置文件中配置模板目录
‘DIRS’: [os.path.join(base_DIR,‘templates’)], - 在应用的视图文件加载模板,并放置要输出的数据
return render(request,“目录/模板文件.html”,{放置字典数据}) - 在模板文件中使用变量、标签和过滤器等输出信息
{{ 变量 }} {% 标签 %} {{ 变量|过滤器 }}
- 在项目的settings.py配置文件中配置模板目录
-
模板语法
变量的输出
模板的标签
模板的过滤器
模板的注释
模板中的运算
自定义标签或过滤器 -
模板继承
-
模板继承可以减少页面内容的重复定义,实现页面内容的重用
典型应用:网站的头部、尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义
block标签:在父模板中预留区域,在子模板中填充
extends继承:继承,写在模板文件的第一行
-
Ajax应用实战
Ajax = Asynchronous Javascript and XML(异步的 Javascript 和 XML)。
Ajax 不是新的编程语言,而是一种使用现有标准的新方法。
Ajax 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
本次案例是使用jQuery实现一个城市级联信息加载实战 -
Web工具分页操作,文件上传
Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中
Paginator对象
Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数
属性
count:对象总数
num_pages:页面总数
page_range:页码列表,从1开始,例如[1, 2, 3, 4]
方法
page(num):下标以1开始,如果提供的页码不存在,抛出InvalidPage异常
当Django在处理文件上传的时候,文件数据被保存在request.FILES
FILES中的每个键为中的name
注意:FILES只有在请求的方法为POST 且提交的带有enctype=“multipart/form-data” 的情况下才会包含数据。
否则,FILES 将为一个空的类似于字典的对象
初学,还请指教!



