django生命周期

1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端
请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中.
2. url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配,
一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了.
3. 视图函数根据客户端的请求查询相应的数据.返回给Django,然后Django把客户端想要的数据做为一个字符串返回给客户端.
4. 客户端浏览器接收到返回的数据,经过渲染后显示给用户.

cbv模式

url

urlpatterns = [
path('fbv/',views.fbv),
path('cbv/',views.CBV.as_view()),
]

view

from django.views import View

class CBV(View):
def get(self,request):
return render(request, "cbv.html") def post(self,request):
return HttpResponse("cbv.get")

cbv.html

<body>
<form method="post" action="/cbv/">
{% csrf_token %}
<input type="text">
<input type="submit">
</form>
</body>

select_related 和 prefetch_related 方法各有什么区别

在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能
对于一对一字段(OneToOneField)和外键字段(ForeignKey),可以使用select_related 来对QuerySet进行优化
对于多对多字段(ManyToManyField)和一对多字段,可以使用prefetch_related()来进行优化

django的form功能的好处:

生成html form,form字段校验

最新文章

  1. Postgresql 简单配置 (ubuntu server 14.04.3)
  2. 【转】 Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
  3. Eclipse调试常用技巧(转)
  4. Objective-C objc_class 介绍
  5. JNI,NDK
  6. tuxedo入门
  7. (原)android的JNI中使用C++的类
  8. MongoDb的“not master and slaveok=false”错误及解决方法,读写分离
  9. Android与JNI(三) ---- c++调用java(转载)
  10. netstream播放rtmp直播流卡顿
  11. ok6410 nandflash 启动uboot 超过256k怎么办
  12. HDU 4609 3-idiots (组合数学 + FFT)
  13. ecplise debug 无法命中断点 一直在加载中
  14. hierarchical_mutex函数问题(C++ Concurrent in Action)
  15. sqlserver中如何将mdf文件还原到数据库
  16. 深入出不来nodejs源码-从fs.stat方法来看node架构
  17. Codeforces #55D-Beautiful numbers (数位dp)
  18. HTTP协议中 POST和GET的区别
  19. Jquery简单实现Datepicker
  20. C# Socket Post File

热门文章

  1. 洛谷P4180 【模板】严格次小生成树[BJWC2010] 题解
  2. Elasticsearch 索引文档如何使用自动生成 Id?
  3. 进程控制块 与 task_struct
  4. F Energy stones
  5. 使用Google学术简单方法汇总
  6. git crate patch and check&amp;apply patch(八)
  7. 在WinDbg中调试时如何查看类/结构对象成员的值
  8. vim文本编辑器——文件导入、命令查找、导入命令执行结果、自定义快捷键、ab命令、快捷键的保存
  9. luogu_4287:双倍回文
  10. navicat提示无法连接解决办法