扩大
缩小

いらっしゃいませ

1.初识web框架

1什么是web框架

Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。

本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端

接口就是WSGI:Web Server Gateway Interface。

web框架的本质及自定义web框架

所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就可以自己实现Web框架了

创建test.py文件

import socket
sk = socket.socket()
sk.bind(('127.0.0.1',8001))
sk.listen()
conn,addr = sk.accept()
from_b_msg = conn.recv(1024)
str_msg = from_b_msg.decode('utf-8')
conn.send(b'HTTP/1.1 200 ok \r\n\r\n')
conn.send(b'hello')

MVC 与 MTV的区别

MVC模式

所谓MVC就是把web应用分为

模型(M)

控制器(C)

视图(V)三层

MTV模式:

        Model(模型):负责业务对象与数据库的对象(ORM)

       Template(模版):负责如何把页面展示给用户

       View(视图):负责业务逻辑,并在适当的时候调用Model和Template

Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

 

FBV

views.py

def fbv(request):
    if request.method=='GET':
        return  HttpResponse("FBV.GET")
    elif request.method=='POST':
        return  HttpResponse("FBV.POST")

urls.py

url(r'^fbv$',views.fbv),

CBV

views.py

from django.views import View
class CBV(View):
    def get(self,request):
        return render(request,'cbv.html')
    def post(self,request):
        return HttpResponse("CBV.POST")

在print("dispatch")中加入其它内容,先执行dispatch,

from django.views import View
class CBV(View):
    def dispatch(self, request, *args, **kwargs):
        print("dispatch")
        result = super(CBV,self).dispatch(request,*args, **kwargs)
        return result
    def get(self,request):
        return render(request,'cbv.html')
    def post(self,request):
        return HttpResponse("CBV.POST")

urls.py

  url(r'^cbv$',views.CBV.as_view()),

参考:https://www.cnblogs.com/yuanchenqi/articles/6083427.html

 

posted @ 2019-02-24 16:08  等待の喵  阅读(...)  评论(...编辑  收藏