一、django基础

Djang中的MVT和Java中的MVC模式:
java中的MVC,相当于Django中的MVT
M:负责和数据库交互
V:和MVC的C功能相同,接收请求,进行业务处理,返回响应
T:和MVC的V功能相同,负责构造要返回的HTML页面
 
前后端分离与不分离的区别
1、通过模板渲染的形式,叫做前后端不分离
前后端不分离:
后端需要控制前端的展示
前后端不分离,耦合严重,发现问题后难找原因是前端还是后端
返回的是HTML页面,实用性,拓展性差,比如APP,小程序,web这样就需要三套接口
前后端分离:
绝大多数情况下,后端返回json格式的参数,前端解析,只需要一套接口,适应性,拓展性好
后端只对数据处理,只提供数据,前端展示的页面样式等,全部由前端负责
前后端同时开始开发,缩短开发时间
 
WSGI协议:
wsgi服务器:gunicorn和uwsgi
会把服务端分成两个部分,Server和Application,如果客户端有请求过来,server直接与客户端交互,用来决定请求的运行环境,比如是运行在新的进程或线程里面之类的,然后wsgi会去调用Application来处理,真正处理请求是在Application来操作
在django中有wsgi.py的文件,他就是负责去调用Application(去调用我们写的代码)
 
 
Django中的响应
HttpResponse
第一个参数content为响应体内容(字符串)
第二个参数为content_type,指明响应数据格式,默认html
第三个参数status为响应状态码,默认200
 
JsonResponse
第一个参数data,默认只能传递dict格式的数据
如果第一个参数data为非dict类型,name需要指定safe=False,其他与HttpResponse一致
 
前端传参方式
1、body
2、header
3、json
4、xml
5、路径传参
6、www-form表单
7、file(文件类型)
 
后端接收参数方式
request.GET接收查询字符串参数,可以使用[]或者.get方法获取具体的值,如果有多个相同的key,可以使用getlist(key)方法获取
requet.POST来获取www-from表单类型的参数
要获取json格式的数据,需要从请求体中获取,request.body返回的是bytes类型,需要用decode('utf-8')转化为字符串,再将json格式的数据转化python中的字典,如:json.loads(request.body.decode('utf-8'))
如果以请求头来传递参数,使用request.META来获取,HTTP_作为前缀,_请求头参数key大写,如:request.MEAT['HTTP_AUTHORIZATION']
 
 
 
设置外网是否可以访问django项目
在全局settings文件中有一个ALLOWED_HOSTS的列表
ALLOWED_HOSTS=[*] 代表所有都可以访问
ALLOWED_HOSTS=[”外网ip“, "localhost"] 指定IP访问
 
 
因为项目模块比较多,所以我们可以同一将所有模块添加到apps目录下面, 那么就会导致在setting中导包的路径受到影响, 除非在前面加apps, 但是太长了不太好,所以可以将apps目录添加到导包的路径当中
sys.path.append(os.path.join(BASE_DIR, "apps"))
然后为了让pycharm没有警告,右击包名,选择mark dirctory as--sources root可以告诉pycharm把这个包作为导入的路径
 

posted @ 2020-10-22 20:05  SoleMemory  阅读(136)  评论(0)    收藏  举报