Django模块笔记【五】

入门笔记翻译整理自: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 --

时间: 2024-11-08 23:10:03

Django模块笔记【五】的相关文章

Django模块笔记【一】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *Model&Database 1. 模型(models) 模型是数据的唯一信息源,它指示了数据的域(fields)和行为(behaviors).每个模型都对应一个数据库表. ①每个模型都是django.db.models.Model的子类:②模型的每个属性代表了数据库的域:③数据库入口API,参考making queries部分. 比如, 1 fro

Django模块笔记【六】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *migration&Managing files&Testing in Django 1. migration的命令 migrate命令负责应用migrations,同时也负责撤销migrations以及查看他们的状态. makemigrations基于对模型的改变,创建新的migrations. sqlmigrate为migration显示S

Django模块笔记【三】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *Forms 1. 使用表单(Working with forms) 只要网站涉及到访问者的输入操作,那么就必须用到表单.在HTML中,表单是<form>...</form>中的语句集合. GET和POST是HTTP处理表单仅有的两种方式.Django中使用Form类表示表单. 对使用方法进行简单举例: 1 # forms.py 2 3

Django模块笔记【二】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 * HTTP Request Handlers 1. URL dispatcher URL在名为URLconf的Python模块中创建,该模块提供了URL模式(正则表达式)和Python函数(视图)之间的映射. URLconf举例如下: 1 from django.conf.urls import url 2 3 from . import views

Django模块笔记【四】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *template 1. 配置(Configuration) 1 TEMPLATES = [ 2 { 3 'BACKEND': 'django.template.backends.django.DjangoTemplates', 4 'DIRS': [], 5 'APP_DIRS': True, 6 'OPTIONS': { 7 # ... some

Django学习笔记(五)—— 表单

疯狂的暑假学习之  Django学习笔记(五)-- 表单 参考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path                                 除域名以外的请求路径,斜杠开头                      "/hello/" request.get_host()                      主机名                              

Django 学习笔记(七)数据库基本操作(增查改删)

一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.py 5.同步数据 二.安装IPython方便debug sudo apt-get install ipython3 安装成功后用python manage.py shell 会自动进入Ipython交互解释器中,没有安装Ipython只有前两行代码,只进入到Python shell 中. Python 3.5

Django学习笔记(三)—— 模型 model

疯狂的暑假学习之 Django学习笔记(三)-- 模型 model 参考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,如果用sqlite,要写完整路径 'USER': '', # 如果用sqlite,这个不用写 'PASSWORD': '', # 如果用sqlite,这个不用写

Django开发笔记之数据库的设计

后台采用Django开发,可以体会到开发的便利之处,对于一个项目来说,首先最重要的是数据库的设计,那么在Django下数据库设计主要是如下步骤: 1,需求分析,这点子不用多说,而我也深刻体会到了没有原型的时候就开始开发的困难之处,每次需求更改就会带来后台的数据和对应接口的一次变更.费时费精力 2.有了需求,那么开始数据库的设计,在Django中,并不需要直接去操作数据库,而且使用继承modesl.Model的类,在类中定义自己的模型,然后使用Python manage.py syncdb就可看到