• Django的视图系统


    视图(views)概述

    在前几篇文章中介绍了,client端通过http请求——去url的路由找到相应的视图函数——触发视图函数——再去modes取数据——取到数据后——再通过创建模——views函数把相响应对象——返回给client最终显示的内容

    视图文件(views.py)在app目录下才有

    看看新建项目默认的views.py文件的内容

    from django.shortcuts import render
    
    # Create your views here.
    

      

    通过相应的url请求来写不同请求的视图函数

    视图函数的编写

    from django.shortcuts import render
    
    # Create your views here.
    def index(request):
        return render(request,'index.html')
    

      

    视图要结和url路由,models,模板文件一起来用,这里只简单介绍

    视图函数的参数

    第一个参数

    视图函数的参数必须是url的请求对象一般写为request

    后面及其他的参数

    是url路由的分组信息,一个参数表示一个分组,两个参数表示两个分组

     无名分组

    URL   urls.py 文件的内容   (无名分组)
    from django.conf.urls import url
    from django.contrib import admin
    from app01 import views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/(d+)/(d+)/$',views.index),
    ]
    

      

    多了 (d+), 正则表达式中 d 代表一个数字,+ 代表一个或多个前面的字符,写在一起 d+ 就是一个或多个数字,用括号括起来的意思是保存为一个子组(更多知识请参见 Python 正则表达式),每一个分组将作为一个参数,被 views.py 中的对应视图函数接收

     用内置的Httpresponce做相应测试

    from django.shortcuts import render,HttpResponse
    
    # Create your views here.
    def index(request,x,y):
        z = x+y
    
        return HttpResponse(str(z))
    

      

    启动django

    django manage.py  runserver  8080
    

      

    client访问

    提示:request接收的对象都是字符串

    有名分组

    每一个分组的分组名将作为一个参数,被 views.py 中的对应视图函数参数接收

    这里就不写了

    request对象

    常用属性

    path:       请求页面的全路径,不包括域名
    method:     请求中使用的HTTP方法的字符串表示。全大写表示。
    GET:         包含所有HTTP GET参数的类字典对象
    POST:       包含所有HTTP POST参数的类字典对象
    

      

    response对象

    对于HttpRequest对象来说,是由django自动创建的,但是,HttpResponse对象就必须我们自己创建。

    每个view请求处理方法必须返回一个HttpResponse对象

    HttpResponse类在django.http.HttpResponse

    在HttpResponse对象上扩展的常用方法:

    render()       #页面渲染,推荐   (很少用HttpResponse)
    redirect("路径")    例如登录跳转
    locals():    可以直接将函数中所有的变量传给模板
    

      

    具体详细使用要结合url和models和模板文件。。。。。。

  • 相关阅读:
    触发器实现从TagBlinkLogs往历史表TagLocationHis20125插入一条数据,实现的是在不同的条件下改变相应的状态
    v$sql,V$SQLTExT和v$sqlarea区别与联系
    centos 下增加swap空间大小
    【转载】telnet: connect to address 127.0.0.1: Connection refused
    【原】centos系统命令部分不可用
    [转]linux下的ssh配置
    [原]linux 配置 ssh 等效性
    ORA03113: endoffile on communication channel Process ID: 252 Session ID: 1 Serial number: 3
    【转载】使用rlwrap增强Linux中的sqlplus命令行功能
    [转]详细解说:简单CSS3实现炫酷读者墙
  • 原文地址:https://www.cnblogs.com/keme/p/6498082.html
Copyright © 2020-2023  润新知