Django视图

1. 视图的基本使用

        1.1 定义视图

        在创建的应用目录下有一个views.py文件,在此文件中定义视图函数:

from django.shortcuts import render 
# Create your views here. 
def index(request):
    # 返回模板 
    return render(request,"book/index.html")

        在项目目录下,创建一个专门用来存放模板的文件夹templates 

         在模板中创建一个 index.html 页面,代码如下:

<!DOCTYPE html> 
<html lang="en"> 
<head>
    <meta charset="UTF-8"> 
    <title>Title</title> 
</head> 
<body>
    <h1>首页</h1> 
</body> 
</html>
        接下来配置 URL ,将视图函数和 url 对应起来,在 应用目录下的 urls.py 中编辑加入如下代码:
from django.conf.urls import url 
# 导入应用目录下存放视图函数的views.py文件
from . import views 

urlpatterns = [ 
    url(r"^index$",views.index), #建立 url 和 views.index 视图函数的关联 
]

        在主目录下的urls.py中编辑加入如下代码:

from django.conf.urls import url, include 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r"^", include("book.urls")), # 包含应用中的urls文件,book是我创建的应用名称 
]
        最后,启动服务器并通过浏览器访问 http://127.0.0.1:8000/index ,页面显示如下:

 2. 获取请求参数

        我们是可以在匹配过程中从 url 中捕获参数,并把每个捕获的参数都作为一个普通的 Python 字符串传 递给视图。获取请求参数需要在正则表达式中使用小括号表示,分别有以下两种方式完成:
        (1)位置参数;
        (2)关键字参数。

        2.1 位置参数

        可以直接使用小括号,并通过位置参数传递给视图

from django.http import HttpResponse 

# show视图函数
def show(request, id): 
    return HttpResponse("show 参数值:%s" % id)
# 添加显示show视图函数的路由
url(r"^show(\d+)$",views.show),

        输入地址‘http://127.0.0.1:8000/show99’,如图:

         2.2 关键字参数

        可以在正则表达式部分为组命名,这就是关键字参数,需要使用到的正则表达式为组命名:

(?P<name>)
分组起别名。
from django.http import HttpResponse

def show(request, bid): 
    return HttpResponse("显示关键字参数值:%s" % bid)
# ?P 部分表示为这个参数定义的名称为 bid[注:后边使用时,必须写相同的名称], 也可以是其它名称
url(r"^show(?P<bid>\d+)$",views.show)

         输入地址‘http://127.0.0.1:8000/show67’,如图:

3. 错误视图

        Django 框架还自带了几个默认视图并用于处理 HTTP 错误请求,例如 404 视图、 500 视图。可以到下载的django模块中查看:

        若想看到自己定义的错误视图而不是调试信息,需要修改 setting.py 文件的如下配置:

         再将定义的模板放在模板文件夹下:

 

 4. HttpRequest对象

        服务器接收到 HTTP 请求后,会根据报文来创建一个 HttpRequest 对象,这个对象就是视图函数的第一个参数(一般定义命名为request)。在 django.http 模块中,定义了 HttpRequest 对象的 API
path
返回一个字符串 str 类型的值,表示请求的页面的完整路径,不包含域名。
method
返回一个字符串 str 类型的值,表示请求使用的 HTTP 方式,常用值包括: 'GET' 'POST'
encoding
返回一个字符串 str 类型的值,表示提交的数据的编码方式。若为 None ,则表示使用浏览器的
默认设置,一般为 utf-8
GET
一个类似于字典的对象,包含 get 请求方式的所有参数。
POST
一个类似于字典的对象,包含 post 请求方式的所有参数。
FILES
一个类似于字典的对象,包含所有的上传文件。
COOKIES
一个标准的 Python 字典,包含所有的 cookie 、键和值都为字符串。
session
一个既可读又可写的类似于字典的对象,表示当前的会话,只有当 Django 启用会话的支持时
才可用。

        编写一个 test()视图函数:

def test(request): 
    # 查看属性 
    print("path 属性值:", request.path) 
    print("method 请求方式:", request.method) 
    print("encoding 编码格式:", request.encoding) 
    print("get 请求方式:", request.GET) 
    print("post 请求方式:", request.POST) 
    return HttpResponse("测试 test")

        注册路由:

url(r"^test$",views.test)

 5. JsonResponse 子类    

        类 JsonResponse 继承自 HttpResponse 对象,被定义在 django.http 模块中,创建对象时接收字典作为参数。通常地,JsonResponse 对象的 content-type 'application/json'
from django.http import JsonResponse 

def get_json(request): 
    return JsonResponse({"name1": "阿里巴巴", "name2": "腾讯", "name3": "京东商城"})

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值