zoukankan      html  css  js  c++  java
  • 3、Django 视图

     视图的定义:

    1. 视图接受web的请求,并且返回给web一个响应。
    2. 视图就是一个python函数,被定义在views.py中。
    3. 响应可以是一张网页的HTML内容,一个重定向,一个404错误等等

    处理过程:

    在浏览器输入url(www.test.com/1/100)  ==> django接受到请求,获取地址去掉域名和端口 ==> 匹配路径/1/100 ==> 匹配到后调用veiws函数对应的方法  ==> 函数获取到url穿过来的值并返回一个响应。

    一、URLconf

    1、在settings.py文件中通过ROOT_URLCONF指定根级url的配置

    ROOT_URLCONF = 'test1.urls'
    
    • urlpatterns是一个url()实例的列表
    • 一个url()对象包括:
      • 正则表达式
      • 视图函数
      • 名称name
    • 编写URLconf的注意:
      • 若要从url中捕获一个值,需要在它周围设置一对圆括号
      • 不需要添加一个前导的反斜杠,如应该写作'test/',而不应该写作'/test/'
      • 每个正则表达式前面的r表示字符串不转义

    二、视图函数

    传参:

    # 传递多个参数
    url(r'^(d+)/(d+)/(d+)/$',views.detail),
    
    # 传递关键字参数。
    url(r'^(?P<p1>d+)/(?P<p2>d+)/(?P<p3>d+)/$',views.detail),
    
    html中传参:
    <a herf="/booktest/getTest2/?a=1&b=2&c=3">test2</a>

    views视图中获取参数:

    def details(request,a1,b1,c1):
        request.GET['a']
        request.GET['b']
        request.GET['c']
        context = {"a":a1,"b":b1,"c":c1}
        return render(request,'xxx/xxx.html',context)
    

    GET  一键多值:

    request.GET.getlist('a') 

    实例:

    ### postTest1.html 中定义:
    <form method="post" action="/bookttest/postTest2/">
    {% csrf_token %} 用户名:<input type="text" name="uname"> <br> 密码: <input type="password" name="upwd"> <br> 性别: <input type="radio" name="ugender" value="男" checked="checked"> 男
       <input type="radio" name="ugender" value="女" checked="checked"> 女 爱好: <input type="checkbox" name="uhobby" value="" >胸口碎大石 <input type="checkbox" name="uhobby" value="" >胸口碎大石 <input type="checkbox" name="uhobby" value="" >胸口碎大石 <br> <input type="submit" value="提交"> </form> ### views 接受值 def postTest2(request): uname = request.POST['uname'] upwd = request.POST['upwd'] ugender = request.POST.get('ugender') uname = request.POST.getlist('uhobby') contest={'uname':uname,'upwd':upwd}

     如403:

    三、Request对象

    四、Respense对象

    cookie 练习

    def cookieTest(request):
    	response = HttpResponse()
    	cookie = request.COOKIES
    	if cookie.has_key('t1'):
    		response.write(cookie['t1'])
    	# response.set_cookie('t1','abc')
    	return response
    

    url 跳转 

    def redTest1(request):
    	# return HttpResponseRedirect('/booktest/redTest2/')
    	return redirect('/booktest/redTest2/')
    
    def redTest2(request):
    	return HttpResponse('这是转向来的页面')
    

    五、状态保持

  • 相关阅读:
    docker安装和hub
    sql获取时间、年龄
    在eclipse中配置Tomcat时,出现“Cannot create a server using the selected type”的错误。
    ajax简单做html查询删除(鲜花)
    java使用jsp建立项目+视频
    java根据数据库自动生成代码
    java连接数据库增删改查公共方法
    制作二维码java
    富文本编译器
    java字符串类型和时间类型的转换
  • 原文地址:https://www.cnblogs.com/sunshine-long/p/12507517.html
Copyright © 2011-2022 走看看