视图 views
视图的工作流程
views的工作流程可以分为三个部分:
- 用户发送请求(request)
- 处理用户的请求(handler)
- 将处理后的数据返回给用户(response)
Request简介
request是浏览器向服务器发送的请求对象(包含用户信息、请求内容、请求方法等)
可以使用dir(request)
查看request对象中的所有方法(如下图):
常用的request对象方法
request.GET
获取url上?
后面的参数request.POST
获取post
提交的参数request.path
请求的路径(如127.0.0.1/index/aqin
中就是/index/aqin
)request.method
请求的方法(get/post等)request.COOKIES
请求过来的cookiesrequest.user
请求的用户对象(可以通过他判断用户是否登陆,并获取用户信息)request.session
当前对话(一个类似字典对象,可读可写)request.META
包含所有HTTP首部(一个标准的Python字典)
返回对象(常见的)
- HttpResponse 直接返回数据内容
-
from django.http import HttpResponse
-
- reder 返回模版渲染后的数据
-
from django.shortcuts import render
-
- JsonResponse 返回json格式的数据
-
from django.shortcuts import render
-
基于类的视图
app/views.py
from django.http import HttpResponse
from django.views.generic import View
class MyClass(View):
def get(self, request):
name = request.GET.get('name')
print(dir(request))
return HttpResponse('hello {}~'.format(name))
app/urls.py
from django.urls import path
from .views import MyClass
urlpatterns = [
path('myclass',MyClass.as_view())
]
urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('app.urls')),
]
settings.py的修改部分
# 网站访问白名单
ALLOWED_HOSTS = ['*']
# Application definition
# 应用注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app',
]
……
# 网站默认语言(en-us/zh-hans)
LANGUAGE_CODE = 'zh-hans'
# 配置网站时间(亚洲时间,默认是 UTC)
TIME_ZONE = 'Asia/Shanghai'
# 默认True
USE_TZ = False