zoukankan      html  css  js  c++  java
  • Django基础——Django视图系统

    Django视图系统(详细点我

    视图(接收请求和返回响应那部分)

    一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。无论视图本身包含什么逻辑,都要返回响应。

    有两种模式的视图:

    1.基于函数的视图(FBV(function base view)) 

    2.基于类的视图(CBV(class base view))

    请求对象(request对象)  

      1. request.method --> 获取请求的方法(GET、POST等)
      2. request.GET --> 通常用来获取URL里面的参数(通常是 路径后面跟?参数) 
        127.0.0.1:8000/edit_book/?id=1&name=yimi
        request.GET --> {"id":1, "name":"yimi"}
        request.GET.get("id")
      3. request.POST --> 用来获取POST提交过来的数据
        request.PSOT也是一个字典{"name":"value"}
        request.POST.get("book_name")

    请求相关的常用值 

    • path_info     返回用户访问url,不包括域名
    • method        请求中使用的HTTP方法的字符串表示,全大写表示。
    • GET              包含所有HTTP  GET参数的类字典对象
    • POST           包含所有HTTP POST参数的类字典对象
    • body            请求体,byte类型 request.POST的数据就是从body里面提取到的

    注意:键值对的值是多个的时候,比如checkbox类型的input标签,select标签,需要用: 

    request.POST.getlist("hobby")  
    
    def edit_author(request):
    	if request.method == "POST":
    		#提交数据后也是先拿到要编辑的对象,getlis可以获得多个对象
    		edit_book = request.POST.getlist("book_id")
    

      

    response
    基础必备三件套

    导入:

    from django.shortcuts import HttpResponse, render, redirect 
    

    1. HttpResponse --> 返回字符串内容
    2. render --> 返回一个html页面 
    3. redirect --> 返回一个重定向(告诉浏览器再去访问新的网址,就是直接跳转到新网站)  

    4. JsonResponse ---> 专门用来生成JSON编码的响应。  

    from django.http import JsonResponse
    
    response = JsonResponse({'foo': 'bar'})
    print(response.content)
    
    b'{"foo": "bar"}'
    

    默认只能传递字典类型,如果要传递非字典类型需要设置一下safe关键字参数。

    response = JsonResponse([1, 2, 3], safe=False)
    

    python 与 json 之间的数据类型的转换;json实际上就是字符串;

    在python中序列化为 json.dumps; json.dump;  反序列化为json.loads;json.load;

    在json中序列化为 json.stringfy();;  反序列化为json.parse();

      

  • 相关阅读:
    五种IO模型透彻分析
    linux正则表达式
    洛谷P1242 新汉诺塔 【神奇的递归】
    【NOIP2012】疫情控制
    [ZJOI2007]棋盘制作 【最大同色矩形】
    [NOIP2008]双栈排序 【二分图 + 模拟】
    LCA的倍增算法
    最大权闭合子图
    小Z的袜子 题解报告【莫队】
    ZJOI2012网络 题解报告【LCT】
  • 原文地址:https://www.cnblogs.com/zenghui-python/p/10800175.html
Copyright © 2011-2022 走看看