以前写django项目时,只知道函数方式的写法,在Django官网的tutorial里介绍了ListView和DetailView两个类。其实普通的视图函数也可以用类的方法写。
用类的方法写视图函数,可以更好的减少代码量。
用类去写视图函数
1 | from django.shortcuts import render |
GET接口
这个类里为HomePage定义了一个get
接口
带参数的GET接口
我们的路由定义如下:1
2
3urlpatterns = [
url(r'^post/(?P<postID>[a-zA-Z0-9_.-]+)', PostPage.as_view())
]
带接口的GET接口这样定义:1
2
3
4
5
6class PostPage(View):
def get(self, request, postID):
context = {}
post = Post.objects.get(id=postID)
context["post"] = post
return render(request, 'post.html', context)
POST接口
1 | class CreatePost(View): |
其他的方法:
- [ ] 同时接受get,post等多种方法的接口
- [ ] 其他可用参数
视图类函数生成url
1 | from django.conf.urls import url |
用了as_view()
方法去自动生成urlHandler。