以下内容能够在百度的时候做更详细的查看,我在这里只是对自己的知识作个简单的记录和复习。
如果不熟悉django的,请去django的基础教程里面做查看,当然我这里没有基础教程。
一、访问流程
对于一个请求程序在django的处理流程
客户端(浏览器)-->wsgi-->中间件-->路由视图-->model/orm-->response-->中间件-->wsgi-->客户端(浏览器)
二、相关流程概述和功能描述
1、客户端
即浏览器,不做过多解释
2、wsgi
wsgi是将python服务器程序连接到web服务器的通用协议。需要结合看一下uwsgi。
3、中间件
在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法。位置在settings.py的MIDDLEWARE_CLASSES 变量
意思就是django在处理相关请求的时候,处理开始前和处理结束后都回去中间件那里执行以下中间件。做状态查看和异常结果反馈。
4、路由视图
urls.py 和views.py,不做解释
5、models/orm
数据库的处理和相关操作,django有自己直接对接数据库的方法
以下是查询,插入方法知道的就一种,不多说了
#<1> all(): 查询所有结果
#<2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象。获取不到返回None
#<3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个。获取不到会
抱胸
#如果符合筛选条件的对象超过一个或者没有都会抛出错误。
#<4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
#<5> order_by(*field): 对查询结果排序
#<6> reverse(): 对查询结果反向排序
#<8> count(): 返回数据库中匹配查询(QuerySet)的对象数量。
#<9> first(): 返回第一条记录
#<10> last(): 返回最后一条记录
#<11> exists(): 如果QuerySet包含数据,就返回True,否则返回False
#<12> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一
系model的实例化对象,而是一个可迭代的字典序列
#<13> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个
字典序列
#<14> distinct(): 从返回结果中剔除重复纪录
三、django对高并发的方法
1、直接配置NGINX,具体配置方法百度就好了
2、配置Apache,具体方法麻烦也百度了
3、优劣说明,低并发Apache比NGINX好,高并发NGINX完虐Apache,所以直接配置NGINX。
四、django的安全应对方法
1、在form表单中添加{csrf_token},django在给浏览器cookie的时候,会生成一个CSRF_token值,表单的提交的时候加上{csrf_token},会携带这个值,去做验证。
2、就是一些其他的了,如敏感操作,重要数据和钱财交易,要做确认的。
五、django是MTV模式
models数据库、templates模板、views业务逻辑视图处理
六、django内置组件
1、admin.py,后台配置管理
2、models.py,负责业务对象与数据库的对象(ORM)
3、forms.py,1.生成HTML代码2.数据有效性校验3校验信息返回并展示
4、分页器,这个看使用场合,通俗点就是查询数据库指定序列的内容数据,上一页,下一页的。
5、用户认证,django有自带的一个表,user_auth,通过方法可直接验证用户登录和密码修改,不过也要看使用场合,这个功能较为单一,不易扩展。看情况使用。
6、cookie和session,emmmm,不说。
七、django缓存
django有自带的缓存,记得要在settings.py里面进行设置
1、数据库缓存
2、内存缓存
3、磁盘缓存
4、redis缓存。
缓存后面再做详细记录