• Django视图(一)


    Django视图(一)

    一、 概述

    作用:视图接受web请求,并相应请求

    本质:视图是自定义的一个python中的函数

    响应内容:正常视图,重定向视图,错误视图(404,500,400)

    响应过程:

    二、 url配置

    配置流程

    一般在创建项目时Django会默认将根级配置文件配置好。配置位置在工程文件夹下的settings.py文件里ROOT_URLCONF = '工程名.urls'
    第二级url配置在工程文件夹下的urls.py文件里的urlpatterns列表里。eg:urlpatterns = [
        path('admin/', admin.site.urls),
       
    path('应用名/',include('应用名.urls'))
    ]
    第三级url配置在应用文件夹下的urls.py文件里。eg: 
    from django.urls import path
    from 应用名 import views
    urlpatterns = [
       
    path('news/',views.news),
    ]
    访问该url时应输入:127.0.0.1:8000/应用名/news
    在需要正则表达式时需注意如果想要从url中获取一个值时,需要对正则加小括号;匹配正则前方不用加反斜杠;正则前需要加‘r’表示字符串。

    url的反向解析

    三、 视图函数

    1、       概述

    其本质是一个函数,一般在views.py文件中定义。用于将url和模版文件还有返回浏览器的数据联系在一起。

    2、       错误视图

    404视图:

    只需要在template目录创建404.html并将settings.py文件中的DEBUG改为False,ALLOWED_HOSTS = [*]。在404.html文件里写{{request_Path}}可以直接在前端显示用户访问的url。

    四、 HttpRequest对象

    1、       概述

    服务器接收http请求后,会根据报文创建HttpRequest对象;视图函数的第一个参数就是HttpRequest对象;它是Django创建的,在调用视图时传递给视图。

    2、       属性

    path:请求的完整路径(不包括域名和端口)

    method:表示请求的方法,GET,POST

    encoding:表示浏览器提交的数据的编码方式(一般为utf-8)

    GET:类似字典的对象,包含了get请求的所有参数

    POST:类似字典的对象,包含了post请求的所有参数

    FILES:类似字典的对象,包含了所有上传的文件

    cookies:字典类型,包含了所有cookie

    session:字典类型,表示当前会话

    3、       方法

    is_ajax:如果是通过XMLHttpRequest发起的,返回Ture

    4、       QuertDict对象

    request对象中的GET、POST都属于该对象。

    get():根据键索取值,只能取一个值

    getlist():将键的值以列表的形式返回,可以取多个值。

    五、 HttpResponse对象

    1、       概述:

    用于给浏览器返回数据。与HttpRequest对象的区别是,HttpResponse对象是程序员创建的。

    2、       用法

    分为两种,一种是不调用模版,直接返回数据;另一种是,调用模版,使用render方法。语法是render(request,templateName,[context])。request:请求对象,templateName:模版路径,[context]:传给模版的数据。
    eg:
    def news(request):
        s = 'you'
        return render(request,"news.html",{"obj":s})

    3、       属性

    content:表示返回的内容模型

    charset:编码格式

    status_code:响应状态码,200,400,500,404

    content-type:指定输出的MIME类型

    4、       方法

    init:使用页面内容实例化HttpReponse对象

    write(content):以文件的形式写入

    flush:以文件的形式输出,刷新缓存区

    set_cookie(key,value=’’,max_age=None,exprise=None)

    delete_cookie(key):删除cookie。如果删除一个不存在的cookie,就会当什么也没有发生一样。

  • 相关阅读:
    解决Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误
    使用jquery validate结合zui作表单验证
    python中利用openpyxl、xlsxwriter库操作Excel
    pandas常用方法之read_excel详解
    利用python中的win32com模块操作Word、Excel文件
    python中如何将csv文件转为xls文件
    python中如何压缩和解压缩文件
    用python实现多个表格合并按字段去重
    ansible基础知识,基本操作
    关于Sublime Text无法打开 Package Control 及其他报错问题的解决
  • 原文地址:https://www.cnblogs.com/xshan/p/8333840.html
Copyright © 2020-2023  润新知