django web问题
2024-10-20 15:49:40
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字段校验
最新文章
- Postgresql 简单配置 (ubuntu server 14.04.3)
- 【转】 Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
- Eclipse调试常用技巧(转)
- Objective-C objc_class 介绍
- JNI,NDK
- tuxedo入门
- (原)android的JNI中使用C++的类
- MongoDb的“not master and slaveok=false”错误及解决方法,读写分离
- Android与JNI(三) ---- c++调用java(转载)
- netstream播放rtmp直播流卡顿
- ok6410 nandflash 启动uboot 超过256k怎么办
- HDU 4609 3-idiots (组合数学 + FFT)
- ecplise debug 无法命中断点 一直在加载中
- hierarchical_mutex函数问题(C++ Concurrent in Action)
- sqlserver中如何将mdf文件还原到数据库
- 深入出不来nodejs源码-从fs.stat方法来看node架构
- Codeforces #55D-Beautiful numbers (数位dp)
- HTTP协议中 POST和GET的区别
- Jquery简单实现Datepicker
- C# Socket Post File
热门文章
- 洛谷P4180 【模板】严格次小生成树[BJWC2010] 题解
- Elasticsearch 索引文档如何使用自动生成 Id?
- 进程控制块 与 task_struct
- F Energy stones
- 使用Google学术简单方法汇总
- git crate patch and check&;apply patch(八)
- 在WinDbg中调试时如何查看类/结构对象成员的值
- vim文本编辑器——文件导入、命令查找、导入命令执行结果、自定义快捷键、ab命令、快捷键的保存
- luogu_4287:双倍回文
- navicat提示无法连接解决办法