• views


    #视图函数一定包含两个对象:
    HttpRequest请求对象,是由django自动创建的
    HttpResponse响应对象由自己创建。



    #HttpRequset----request---->用户请求相关的所有
    request.path #访问获取文件的路径
    request.method #获取请求中使用的http方式(get/post)
    request.body #含所有的请求信息 bytes类型
    request.GET #GET请求的数据(类字典对象) 请求头中的url中?后面拿值
    request.POST #POST请求的数据(类字典对象) 请求体里拿值
    request.COOKIES #包含所有cookies的标准Python字典对象;keys和values都是字符串
    request.session #唯一可读写的属性,代表当前会话的字典对象;
    #自己有激活Django中的session支持时该属性才可用
    request.FILES
    '''
    包含所有上传文件的类字典对象;
    FILES中的每一个Key都是<input type="file" name="" />标签中name属性的值,
    FILES中的每一个value同时也是一个标准的python字典对象,
    包含下面三个Keys:
    filename: 上传文件名,用字符串表示
    content_type: 上传文件的Content Type
    content: 上传文件的原始内容
    '''
    request.user
    '''
    是一个django.contrib.auth.models.User对象,代表当前登陆的用户。
    如果访问用户当前没有登陆,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。
    可以通过user的is_authenticated()方法来辨别用户是否登陆:
    只有激活Django中的AuthenticationMiddleware时该属性才可用
    '''
    request.GET.get('name') #拿到GET请求里的name的值
    request.POST.getlist('key') #如果某个键对应有多个值,需要用getlist
    request.get_full_path()


    #HttpResponse---->响应字符串
    from django.http import HttpResponse
    #在HttpResponse对象上扩展的常用方法

    #1.render函数
    #render方法主要是将从服务器提取的数据,填充到模板中,然后将渲染后的html静态文件返回给浏览器。
    render(request,template_name[, context])
    '''
    request: 用于生成响应的请求对象。
    template_name:要使用的模板的完整名称,可选的参数
    context:添加到模板上下文的一个字典。默认是一个空字典。如果字典中的某个值是可调用的,视图将在渲染模板之前调用它。
    local()是Python中的一个内置函数,它可以将函数中的局部变量以字典的形式返回。
    '''
    from django.shortcuts import render
    def test(request):
    return render(request,'index.html')

    #2.redirect函数
    '''
    参数可以是:
    一个模型:将调用模型的get_absolute_url() 函数
    一个视图,可以带有参数:将使用urlresolvers.reverse 来反向解析名称
    一个绝对的或相对的URL,将原封不动的作为重定向的位置。
    '''
    from django.shortcuts import redirect
    #传递一个对象
    #将调用get_absolute_url() 方法来获取重定向的URL:
    from myapp.models import MyModel
    def my_view(request):
    ...
    object = MyModel.objects.get(...)
    return redirect(object)
    #传递一个视图的名称
    #可以带有位置参数和关键字参数;将使用reverse() 方法反向解析URL
    def my_view(request):
    ...
    return redirect('some-view-name', foo='bar')
    #传递要重定向的一个硬编码的URL
    def my_view(request):
    ...
    return redirect('/some/url/', permanent=True)
    #默认情况下,redirect() 返回一个临时重定向。
    #以上所有的形式都接收一个permanent 参数;如果设置为True,将返回一个永久的重定向:

  • 相关阅读:
    使用 Istio 进行 JWT 身份验证(充当 API 网关)
    DNS 私有域的选择:internal.xxx.com/lan.xxx.com 还是 xxx.local/xxx.srv?
    「Bug」K8s 节点的 IP 地址泄漏,导致 IP 被耗尽
    Linux网络学习笔记(二):域名解析(DNS)——以 CoreDNS 为例
    Linux 发行版的选用(服务器和个人桌面)
    「Bug」VMware 虚拟机的关机测试中,Ubuntu 明显比 CentOS 慢
    VMware vSphere :服务器虚拟化
    「Bug」ubuntu 使用国内 apt 源构建 docker 时提示 hash 不匹配
    留言板
    Idea 自定义快捷代码输入 如syso => System.out.println()
  • 原文地址:https://www.cnblogs.com/mznsndy/p/11314220.html
Copyright © 2020-2023  润新知