HTTP请求,中间件,路由正则匹配参数,什么是MVC,MVT

HTTP请求


HTTP常见的请求方式有哪些

get,post,put,delete,options

django-如何接收VUE发送的HTTP请求:

vue---http请求----通过uwsgi----转化为wsgi-----django接收到wsgi

django将wsgi请求-----Uwsgi-------转化为http请求----vue接收请求

为什么使用http请求:

协议规定了客户端和服务器之间的数据传输格式.

http是如何遵循TCP协议的:

三次握手,四次挥手

三次握手:

客户端发送请求给服务器

服务器接收到请求

客户端发送正式连接请求

四次挥手:

客户端发送离开请求

服务器接收到离开请求

服务器发送离开请求

客户端同意离开请求

http的构成:

请求行---请求头---请求体

请求行:由请求方式,请求路径,HTTP协议及其版本

请求头:是HTTP的报文头,报文头包括若干个属性,格式为:“属性名:属性值”,服务端据此获取客户端的信息

请求体:是报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。 

HTTP请求常见的状态码有哪些:

200:请求成功

400:客户端请求有误

301:永久重定向

302:暂时重定向  ↵

400:客户端有误

404:路由地址不存在

500:服务器发生不可预期的错误

wsgi进入中间件后通过什么,怎么走出去?

request请求=>中间件1=>中间件2=>中间件3=>视图,model,url=>中间件3=>中间件2=>中间件1=>response响应内容


中间件:


常用的中间件有哪些?

process_request:

1.中间件的process_request方法是在执行视图函数之前执行的

2.当配置中间件时,会按照MIDDLEWARE的注册顺序,也就是列表的索引值,从前到后依次执行的。

3.不同中间件之间传递的request都是同一个对象。

process_response:

process_response是在视图函数执行之后开始的

process_exception:

处理异常时调用

process_template_response:

在结束视图之后立即调用

process_view:

处理试图前调用

路由正则匹配获取参数:

re_path('路由地址(正则表达式)'),?P<q>用来给获取路由参数的变量定义一个固定的名字

例:

Index1/re=五位数的小写字母/  

re_path('index1/(?P<s>[a-z]{5})/$',Text1.as_view()),

 view视图:

class Text1(View):
    def get(self,request,s=None):
        print(s)
        return HttpResponse(s)

什么是MVC,MVT?

。分工,解耦,让不同的代码降低耦合,增强代码的可扩展性贺可移至性

MVC:

M全拼model,主要伟了封装对数据库的访问,对数据库进行增,删,改,查  ↵

v全拼伟view,主要是用于封装结果,生成页面展示html内容

c全拼伟controller,用于接收请求,处理业务逻辑,与model和view交互,返回结果

MVT:

M全拼model,与MVC中的M功能相同,负责和数据库交互,进行数据处理

V全拼为view,与MVC中的C功能相同,接收请求,处理业务逻辑,返回应答

T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html

 

JsonResponse 和HttpResponse 有什么区别?

 

Json返回的是Json格式的字典,

Httpresponse返回的则是一串字符串,

loads是将json数据转化为python数据

dumps是将python数据转化为json数据

    def get(self,request):
        user = UserModel.objects.all()
        #user返回的是一个查询集,
        l=[]
        for i in user:   #循环查询集,讲查询集内的数据循环获取到l这个列表内
            l.append({
                'id':i.id,
                'username':i.username,
                'password':i.password
            })
        str_user = json.dumps(l)   #将l这个列表转化成字符串
        return HttpResponse(str_user)      #返回这个字符串

manage.py下创建app如何创建?

指令python manage.py startapp app名

如果说需要将app拖入到一个app汇总的这样的一个目录时

需要在setting中配置:

sys.path.insert(0,os.path.join(BASE_DIR,'app'))

并且需要将app汇总的这个目录设置为源码根

注意:在序列化器内或者是视图函数,路由等文件,不能直接调用app汇总目录里的这个app的model,视图或函数,

导包时必须要:app.app01(app是汇总目录名,app是app名称)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值