## 视图函数
一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你的Python目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处,约定是将视图放置在项目或应用程序目录中的名为views.py的文件中。
下面是一个返回当前日期和时间作为HTML文档的视图:
```
from django.shortcuts import render, HttpResponse, HttpResponseRedirect, redirect
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "
It is now %s." % nowreturn HttpResponse(html)
```
让我们逐行阅读上面的代码:
* 首先,我们从 django.shortcuts模块导入了HttpResponse类,以及Python的datetime库。
* 接着,我们定义了current\_datetime函数。它就是视图函数。每个视图函数都使用HttpRequest对象作为第一个参数,并且通常称之为request。
注意,视图函数的名称并不重要;不需要用一个统一的命名方式来命名,以便让Django识别它。我们将其命名为current\_datetime,是因为这个名称能够精确地反映出它的功能。
* 这个视图会返回一个HttpResponse对象,其中包含生成的响应。每个视图函数都负责返回一个HttpResponse对象。
视图层,熟练掌握两个对象即可:请求对象(request)和响应对象(HttpResponse)
## 基本示例
[修改全局urls.py](http://xn--urls-486f91fh25a8mq.py)
```
from app01 import views
urlpatterns = [
re_path(r"index/", views.index),
]
```
[修改app01下views.py](http://xn--app01views-bj2p44pxy4f.py)
```
from django.shortcuts import render,HttpResponse
def index(request):
return HttpResponse("OK")
```
浏览器访问
```
http://127.0.0.1:8000/index/
```
修改app01下views.py实现post请求
```
from django.shortcuts import render,HttpResponse
# Create your views here.
def index(request):
# 打印请求方式
print("method", request.method)
# 打印get请求数据
print(request.GET)
# 获取单个值
print(request.GET.get("name"))
# 打印post请求数据
print(request.POST)
# 打印请求路径
print(request.path)
print(request.get_full_path())
#return HttpResponse("OK")
#return HttpResponse("
OK
")# 表单实现post请求
return render(request, "index.html")
```
创建index.html
```
姓名
年龄
```
url中使用`?`发送get请求数据
```
http://127.0.0.1:8000/index/?name=will&age=22
```
查看日志信息
```
method GET
```
表单点击提交,发送post请求数据
```
method POST
```