• 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 --

  • 相关阅读:
    windows cluster 心跳检测阀值优化
    添加普通用户为sudoer
    每日备份脚本目录shell
    linux基础配置
    表变量 临时表 使用场景
    mysql分组排序row_number() over(partition by)
    replication_较少延迟时间
    SQL Server 参数化 PARAMETERIZATION
    thinkPHP RBAC模块
    thinkPHP 微信sdk
  • 原文地址:https://www.cnblogs.com/py-drama/p/4624072.html
Copyright © 2020-2023  润新知