最初 django 的视图都是用函数实现的,后来开发出一些通用视图函数,以取代某些常见的重复性代码.通用视图就像是一些封装好的处理器,使用它们的时候只须要给出特定的参数集即可,不必关心具体的实现.各种通用视图的参考参见:https://docs.djangoproject.com/en/1.6/ref/class-based-views/ 然 后函数式视图的缺点——难以扩展和自定义,开始显现出来.于是 1.3 起 django 开始用类视图来实现通用视图.较于函数,类能够更方便的实现继承和 mi…
Django 1.6 基于类的通用视图 最初 django 的视图都是用函数实现的,后来开发出一些通用视图函数,以取代某些常见的重复性代码.通用视图就像是一些封装好的处理器,使用它们的时候只须要给出特定的参数集即可,不必关心具体的实现.各种通用视图的参考参见:https://docs.djangoproject.com/en/1.6/ref/class-based-views/然后函数式视图的缺点——难以扩展和自定义,开始显现出来.于是 1.3 起 django 开始用类视图来实现通用视图.较于…
在早期,我们认识到在视图开发过程中有共同的用法和模式.这时我们引入基于函数的通用视图来抽象这些模式以简化常见情形的视图开发. 基于函数视图的用法有以下三种: def index(request): return HttpResponse('hello world!') def index(request): result = {'demo':'demo'} return render(request, 'blog/about.html', result) def index(request):…
处理表单通常包含3步: 初始化GET(空白的后者预填充的表单) POST非法数据(通常重新显示带有错误信息的表单) POST合法数据(提交数据并重定向) 为了将你从这些烦人的重复步骤中解救出来,Django为表单提供了一类通用视图 基础表单 这是一个简单的联系表单: 1 2 3 4 5 6 7 8 9 10 # forms.py from django import forms   class ContactForm(forms.Form):     name = forms.CharField…
在web开发中,最令人头痛的就是一遍又一遍的重复固定的模式.在解决了模板层面和模型层面的重复代码之痛之后,Django使用通用视图来解决视图层面的代码重复. 扩展通用视图 毫无疑问通用视图可以大幅度地加速web开发,但是在许多项目中,总是有通用视图不够用的时候.确实,现今的Django开发者们需要知道如何让通用视图可以处理更多的纷繁复杂的场景. 这是1.3版本的通用视图被重新设计的原因之一.以前,通用视图只是一些带有一些扑朔迷离选择的视图函数,现在更加推荐的方法是通过继承.重写属性或方法来扩展视…
Django中自带了sitemap框架,用来生成xml文件 Django sitemap演示: sitemap很重要,可以用来通知搜索引擎页面的地址,页面的重要性,帮助站点得到比较好的收录. 开启sitemap功能的步骤 settings.py文件中django.contrib.sitemaps和django.contrib.sites要在INSTALL_APPS中 INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth',…
表单的编写 1. detail.html模版的编写 <h1>{{ poll.question }}</h1> {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %} <form action="{% url 'polls:vote' poll.id %}" method="post">…
刚开始的时候,django只有基于函数的视图(Function-based views).为了解决开发视图中繁杂的重复代码,基于函数的通用视图( Funcation-based generic views)出现了,但是不久它的弊端就显示出来:无法扩展.无法定制.基于函数的通用视图的不灵活导致它在现实世界中的应用受限.基于类的通用视图也是出于同样的目的被开发出来,它提供一个工具箱(基类)并支持多重继承,随着它的应用,人们发现它的可扩展性和灵活性远超它的小兄弟——基于函数的通用视图. 基于类的通用视…
这周是我入职的第一周,入职第一天看到嘉兴大佬的项目代码.视图中有类方法,我感到很困惑. 联想到之前北京融360的电话面试,问我有无写过类方法……看来有必要了解下视图的类方法,上网搜了很多,原来这就是所谓的“通用视图”. 上班是大小周,这周刚好只上5天:所以早上睡得很晚.好像没什么时间详细写这方面的博客,以后有时间会写的.你可以看看下面的参考文章,我觉得也写得不错. 你可以看我的git代码,如果你有点django基础的话,比如基础的def视图,相信是看得懂的,我也写了很多注释. GIT网址:htt…
​刚开始的时候,django只有基于函数的视图(Function-based views).为了解决开发视图中繁杂的重复代码,基于函数的通用视图( Class-based generic views)出现了,但是不久它的弊端就显示出来:无法扩展.无法定制.基于函数的通用视图的不灵活导致它在现实世界中的应用受限.基于类的通用视图也是出于同样的目的被开发出来,它提供一个工具箱并支持多重继承,随着它的应用,人们发现它的可扩展性和灵活性远超它的小兄弟——基于函数的通用视图. 基于类的通用视图是基于函数的…