码迷,mamicode.com
首页 > 其他好文 > 详细

Django模块笔记【五】

时间:2015-07-06 19:33:37      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/

*该笔记将对各个模块进行单独介绍

*Class-based views

视图是接受请求并返回响应的可调用对象。

1. 用法举例

1 from django.conf.urls import url
2 from django.views.generic import TemplateView
3 
4 urlpatterns = [
5     url(r^about/, TemplateView.as_view(template_name="about.html")),
6 ]

或者

1 # some_app/views.py
2 from django.views.generic import TemplateView
3 
4 class AboutView(TemplateView):
5     template_name = "about.html"

 

1 # urls.py
2 from django.conf.urls import url
3 from some_app.views import AboutView
4 
5 urlpatterns = [
6     url(r^about/, AboutView.as_view()),
7 ]

 

2. 比较两种视图

普通视图:

1 from django.http import HttpResponse
2 
3 def my_view(request):
4     if request.method == GET:
5         # <view logic>
6         return HttpResponse(result)

基于类的视图:

1 from django.http import HttpResponse
2 from django.views.generic import View
3 
4 class MyView(View):
5     def get(self, request):
6         # <view logic>
7         return HttpResponse(result)
1 # urls.py
2 from django.conf.urls import url
3 from myapp.views import MyView
4 
5 urlpatterns = [
6     url(r^about/, MyView.as_view()),
7 ]

 


 

3. 内置基于类的通用视图

略过。


 

4. 类通用视图处理表单

例如:

 1 # forms.py
 2 
 3 from django import forms
 4 
 5 class ContactForm(forms.Form):
 6     name = forms.CharField()
 7     message = forms.CharField(widget=forms.Textarea)
 8 
 9     def send_email(self):
10         # send email using the self.cleaned_data dictionary
11         pass
 1 # views.py
 2 
 3 from myapp.forms import ContactForm
 4 from django.views.generic.edit import FormView
 5 
 6 class ContactView(FormView):
 7     template_name = contact.html
 8     form_class = ContactForm
 9     success_url = /thanks/
10 
11     def form_valid(self, form):
12         # This method is called when valid form data has been POSTed.
13         # It should return an HttpResponse.
14         form.send_email()
15         return super(ContactView, self).form_valid(form)

 


 

5. 在类视图中使用混合体(mixins)

略。

 

-- The End --

 

Django模块笔记【五】

标签:

原文地址:http://www.cnblogs.com/py-drama/p/4624072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!