django 框架使用流程:
安装django包-----------------pip install django,
使用django创建项目 -------django-admin startproject 项目名字
创建应用---------------------- django-admin startapp 应用的名字,
在项目的settings.py文件中 INSTALLED_APPS 添加应用的全限类名
定义模型类和迁移模型 : 模型类要继承 django.db.models.Model,模型类和关系型数据库的表一一映射(ORM):
一个表对应一个模型类,
一个表一个列对应模型类中的一个属性,
一个表中的一行对应一个实例对象。
模型类定义:
字段/属性的类型:
bool:models.BooleanField
char:models.CharField
int:models.IntegerField
float:
file:
字段属性选项:主键、自增长、唯一、允许为空、默认值
迁移模型
让数据库和模型类进行同步,使数据库表的列和模型类同步
python manage.py makemigrations
python manage.py migrate
创建模型类和配置视图url
django框架流程图
浏览器发送一个http请求,是先建立socket连接(请求行,请求头)
web服务器接收到http请求,解析请求
交给应用处理请求,根据请求的地址,在视图中进行匹配处理
视图如果需要使用数据库就调用模型。
视图如果需要html数据,就导入模板引擎
然后视图将响应数据返回给服务器
服务器再拼接数据,返回http的响应数据
MVT工作流程
M: 操作数据库
V:视图是接收请求、处理请求、返回响应
T:template:把模板渲染成html
视图函数
第一个参数是HttpRequest类对象,里面封装了请求的所有数据(请求行,请求头,请求体)
返回值,必须是HttpResponse 类型对象,里面封装了响应数据(响应头,响应体)
视图类
视图类继承 :django.views.View
处理get请求,实现get请求,restful规范中,get请求用来查询数据
处理post请求,实现post请求,用来插入数据
处理put请求, 实现put请求,用来修改数据
处理delete请求,实现delete,用来删除数据
第一个参数是self,第二个参数是HttpRequest类型对象
返回值必须是HttpResponse对象
配置url视图
urlpatterns列表里面添加url规则,re_path(正则表达式)
url匹配过程????
模板
模板的使用步骤:
1、创建模板文件夹
2、配置django框架, 模板文件夹路径
3、创建模板文件
4、在视图中使用render(request,“模板文件路径(相对于模板文件夹的路径)”),模板文件夹可以使用mark as template 方式设置
5、完善模板文件内容:{%if 条件表达式%} ,模板语法我们使用的是jinja
django 中的模型
配置数据库为mysql
使用模型类进行增删改查
django中的视图:
视图url配置:根url配置 和 应用url配置
路由的反向解析reverse函数
HttpRequest对象
会话保持:cookie 和session
类视图:类视图使用方法,类视图的工作原理(dispatch函数)
HttpRequest对象 :
url 路径参数
url查询字符串 request.GET :Query Dict类型 request.GET.get("username")
请求体-form表单 request.POST.get("username")
请求体-JSON : request.body bytes类型数据
request.body.decode() strl类型数据
json.loads( request.body.decode()):字典类型数据
请求头数据的获取
request.META(['CONTENT_LENGTH']) 请求体的长度
request.META(['CONTENT_TYPE']) :请求体的数据类型
HttpRequest可以获取其他请求
请求方法 request.method
请求路径: request.path
请求用户对象: request.user :登录之后是用户模型类实例,没有登录是匿名用户实例
HttpResponse 对象:
JsonResponse :在响应体中返回是封装了json字符串
render(request,"模板路径",上下文)
在响应体中封装了HTML格式数据,封装在HttpResponse类型对象中
redirect(重定向页面的路径)
cookie
获取cookie的值,request上带有cookie的值,request.COOKIES.get()
设置cookie的值,response 可以设置cookie response.set_cookie()
session
通过request 去操作session
request.session.get()
git仓库的创建:
在gitee中创建仓库
clone到本地仓库
master-dev-开发者名字 工作流
创建本地分支
checkout到本地分支
创建项目 django-admin startproject woniumall
配置项目:
创建和设置开发环境中使用的项目配置文件
配置模板为jinja2
配置数据库为mysql
配置redis为缓存服务器,配置session保持在redis缓存中
配置项目日志