views 视图层

1.request对象

method:请求方式 GET:get请求的参数(post请求,也可以携带参数)

POST:post请求的参数(本质是从bdoy中取出来,放到里面了)

COOKIES--->后面讲 META:字典(放着好多东西,前端传过来的,一定能从其中拿出来)

body:post提交的数据 path:请求的路径,不带参数

request.get_full_path() 请求路径,带参数

session---后面讲 user---后面讲

FILES encoding:编码格式

is_ajax()---后面讲

 

2HttpResponse

三件套(render,HttpResponse,redirect)

-JsonResponse:往前端返回json格式数据(没有它,我可以自己写) -转列表格式:指定safe=False -中文字符问题:json_dumps_params={'ensure_ascii':False}

 

def jsonre(request):
    dic = {'name':'msj','pwd':"123"}
    #from django.http import JsonResponse
    # 最基础的支持字典形式
    # return JsonResponse(dic)

    #想要支持其他格式的json对象的话,取消safe=False设置
    return JsonResponse([dic],safe=False)

3 wsgiref,uwsgi, 都遵循wsgi协议

—遵循一个协议wsgi(web server Gateway interface web 服务网关接口)

wsgiref单线程,不支持高并发,uwsgi 支持高并发

4 CBV(基于类的视图)和FBV(基于函数的视图)

CBV 必须继承

views文件中

from django.views import View

类的固定模式

class Myclass(View):
    def dispatch(self,request,*args,**kwargs):
        #逻辑代码块
        res= super().dispatch(request,*args,**kwargs)
        return
    def get(self,request):
        #逻辑代码块
        return HttpResponse('cbv--get')
     def post(self,request):
        #逻辑代码块
        return HttpResponse('cbv--post') 

在路由中的使用方法

url('^mycass/$',views.MyClass.as_view())
#需要加()执行,获得相应的地址

5 文件上传

-form表单默认提交的编码方式是enctype="application/x-www-form-urlencoded" -前端:如果要form表单上传文件,必须指定编码方式为:multipart/form-data -后端:

def upload(request):
    if request.method == "GET":
        return render(request,'upload.html')
    else:
        #浏览器上传的文件使用的是post方法,而具体对象在request对象.Files.get("name")
        file = request.FILES.get('ss')
        with open(file.name,'wb') as f:
            for line in file:
                f.write(line)
        return HttpResponse("上传成功")

6 前端提交数据编码格式:

-multipart/form-data(上传文件) -application/x-www-form-urlencoded(默认编码)

<form action="/upload/" method="post" enctype="multipart/form-data">
    <input type="file" name="ss">
    <input type="submit" value="提交">

</form>

7 图书管理系统表分析:

图书管理系统 -表: book表 author表 publish表

-一对一:一对多的关系一旦确立,关联字段写在哪都可以

-一对多:一对多的关系一旦确立,关联关系写在多的一方

-多对多:多对多的关系,必须创建第三张表(中间表)

猜你喜欢

转载自www.cnblogs.com/msj513/p/10246692.html
今日推荐