多语言展示
当前在线:588今日阅读:195今日分享:41

Django类视图的使用

Django类视图的使用,类视图比函数视图好处在于代码的可读性和复用性。
方法/步骤
1

登录Ubuntu虚拟机,打开终端,进入python虚拟环境,创建django工程,在工程内创建应用,命令如下:workon djangotestdjango-admin startproject djviewcd djviewpython manage.py startapp book

2

在django工程的settings.py文件,注册book应用,在allowed_hosts添加本机ip地址,同时注释掉中间件'django.middleware.csrf.CsrfViewMiddleware',因为本例中会用到post请求cd djviewvi settings修改部分的settings文件如下:ALLOWED_HOSTS = ['192.168.128.128']# Application definitionINSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'book.apps.BookConfig',]MIDDLEWARE = [    'django.middleware.security.SecurityMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.common.CommonMiddleware', #   'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    'django.middleware.clickjacking.XFrameOptionsMiddleware',]

3

在book应用的views.py文件创建一个视图类cd ../bookvi views.pyviews.py文件如下;from django.shortcuts import renderfrom django.views.generic import Viewfrom django.http import HttpResponse# Create your views here.class index(View):    def get(self,request):        return HttpResponse('get page')        def post(self,request):        return HttpResponse('post page')

4

在book应用创建urls.py文件,并在此文件编写到index类视图的urlvi urls.pyurls.py文件如下;from django.conf.urls import urlfrom . import viewsurlpatterns = [    url(r'^index/', views.index.as_view()),]

5

在工程的urls.py文件,include到book应用的urlscd ../djviewvi urls.pyurls.py文件如下:from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^book/', include('book.urls')),]

6

运行django服务器,注意带上ip和端口号,这样就能在同一局域网其他电脑访问cd ..python mange.py runserver 192.168.128.128:8000

7

在局域网另一台电脑使用POSTMAN通过post请求http://192.168.128.128:8000/book/index/返回:post page注意一定要带上最后的‘/’在get请求中‘/’会自动添加,post不会

8

使用get请求,返回:get page 类视图测试成功

推荐信息