• django views视图函数


    Django views.py视图文件

    一. 创建views.py文件在工程文件夹根目录创建views.py视图文件,其实任意文件名都可以,使用views是为了遵循传统。

    注:所有的views函数都需要以request对象作为第一个参数request代表客户端浏览器向服务器请求的一个信息字符串,views中的函数需要接收这个字符串才行对他进行处理。

     

    .HttpResponse函数:

    views.py里面,我们可以使用HttpResponse直接给页面返回一个字符串。

    调用HttpResponse直接给页面返回一个字符串。

    from django.http import HttpResponse

    def hello(request):    

    return HttpResponse("Hello World!")

    三.调用render函数返回一个网页:

    render 英文是提供的意思:

    render 是一个主要用来返回一个html模板页面的函数。

    render(request,template_name,context=None,content_type=None,status=None,

    using=None)

    此方法的作用是:接收到一个请求,结合一个给定的模板和一个给定的context上下文字典,并返回一个渲染后的 HttpResponse 对象。通俗的讲就是接收到一个请求,然后指定好一个html模板,并把上下文context字典中的内容, 加载进templates_name中指定的模板文件, 并通过浏览器渲染呈现.

    参数详解:

    request: 是一个固定参数, 就是指通过接受到的通过wsgi处理过的客户端浏览器请求数

    据。

    template_name:templates中定义的HTML文件, 要注意路径比如'templatespollsindex.html', 参数就要写‘pollsindex.html’

    context: 要传入上下文中用于渲染呈现的数据, 默认是一个字典格式,键即下文html模板中需要被替换的元素,键值即在views视图函数中需要传到html模板中变量需要替换成的值。

    content_type: 生成的文档要使用的MIME 类型。默认为DEFAULT_CONTENT_TYPE 设置的值。

    status: http的响应代码,默认是200.

    using: 用于加载模板使用的模板引擎的名称。

    常见的MIME类型(通用型):

    超文本标记语言文本 .html text/html

    xml文档 .xml text/xml

    XHTML文档 .xhtml application/xhtml+xml

    普通文本 .txt text/plain

    RTF文本 .rtf application/rtf

    PDF文档 .pdf application/pdf

    Microsoft Word文件 .word application/msword

    PNG图像 .png image/png

    GIF图形 .gif image/gif

    JPEG图形 .jpeg,.jpg image/jpeg

    au声音文件 .au audio/basic

    MIDI音乐文件 mid,.midi audio/midi,audio/x-midi

    RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

    MPEG文件 .mpg,.mpeg video/mpeg

    AVI文件 .avi video/x-msvideo

    GZIP文件 .gz application/x-gzip

    TAR文件 .tar application/x-tar

    任意的二进制数据 application/octet-stream

    注:使用默认就能返回所有类型。

    from django.shortcuts import render

    def index(request):

        context={}                          #首先初始化这个字典

        context['hello']= "Hello World!"   #context中的hello键代表Hello World!字

    符串

        return render(request, 'index.html', context)

     

    而在index.html文件中:

     

    参数hello需要用双括号括起来代表需要替换的字符:

    如图中的{{hello}}

    而在views视图文件中的context字典则代表了上下文需要替换的文字和字符串,即context字典元素中的键值即末班中需要替换的变量。即context 字典中元素的键值 "hello" 对应了模板中的变量 "{{ hello }}"。

    这样通过render函数我们就完成了使用模板来输出数据,从而实现数据与视图分离。

    四.调用redirect 函数重定向

    redirect:英文意思改变线路,改变方向,在我们这里是重定向的意思。

    参数可以是:

    一个模型:将调用模型的get_absolute_url() 函数

    一个视图,可以带有参数:将使用urlresolvers.reverse 来反向解析名称

    一个绝对的或相对的URL,将原封不动的作为重定向的位置,即返回一个模板位置。

    默认返回一个临时的重定向;传递permanent=True 可以返回一个永久的重定向。

    示例:

    你可以用多种方式使用redirect() 函数。

    传递一个对象:

    将调用get_absolute_url() 方法来获取重定向的URL:

    from django.shortcuts import redirect

    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/')

    也可以是一个完整的URL,可以是返回外部的网站,这里测试返回百度网站:

    from django.shortcuts import render,redirect

    def blog(request):

        return redirect("http://www.baidu.com")

     

    def my_view(request):

        ...

        return redirect('http://example.com/')

    默认情况下,redirect() 返回一个临时重定向。以上所有的形式都接收一个permanent 参数;如果设置为True,将返回一个永久的重定向:

    def my_view(request):

        ...

        object = MyModel.objects.get(...)

        return redirect(object, permanent=True)  

  • 相关阅读:
    深入理解redis数据类型
    js获取带#号链接后的参数
    js对象深拷贝与浅拷贝
    VUE + ElementUI 从搭建到运行
    python 输入一个整数,判断其是否既是3的倍数,又是5的倍数
    输入一个三位整数,顺序打印个位、十位、百位上的数
    python 输入三个整数,按照从小到大的顺序打印
    python 运算符与分支结构
    python 变量定义
    python 环境安装
  • 原文地址:https://www.cnblogs.com/fengjunhua/p/7813317.html
Copyright © 2020-2023  润新知