Python 语言Django 框架的简化视图

1 我们在用Django编程时,会发现,经常需要用到列表、详情、修改这些操作 。这些操作几乎可以满足数据编辑的大部分要求 。那能不能像YII2脚手架功能一样直接提供一个通用的模板类,只需指定几个必要的参数,所有的功能自己去实现呢 。
【Python 语言Django 框架的简化视图】2 Python 语言Django 框架,刚好提供这样的功能,它有很多叫法,如 类视图、通用视图、简化视图,都指的是它 。我们可以把它看成Django 框架的脚手架 。
3 Django简化视图底层的本质是通过从URL传递过来的参数去数据库查询数据,加载一个模板,利用得到的数据渲染模板(按照路由、视图、模板、模型的路线图) 。
4 以下是Django 框架提供的简化视图,可以直接拿来使用 。
View ------------------- 所有类视图的基类
TemplateView --------------渲染一个template
RedirectView ----------------重定向类视图
? 通用显示视图Display view:
? DetailView ---------------展示单个object
? ListView ------------------展示多个object
? 通用编辑视图Edit view:
? FormView -------------- 显示一个form表单
? CreateView ------------ 创建一个对象
? UpdateView ------------更新对象
? DeleteView --------------删除对象
5 例,路由代码
path('', views.IndexView.as_view(), name='index'),
视图代码
class IndexView(generic.ListView):
template_name = 'polls/index.html'
context_object_name = 'latest_question_list'
def get_queryset(self):
return Question.objects.order_by('-pub_date')[:5]
6 小贴士 6-1通用视图实际上是类视图的一种,Django类视图的完整架构还是很庞大的 。笔者只是提纲挈领,有兴趣可以试着搜索“使用Django通用视图的get_queryset, get_context_data和get_object等方法”深入学习 。
6-2 笔者在看一些程序员在做php后台维护时,数据库经常被SQL注入,其实简单点使用addslashes()函数就能解决大部分问题 。




    推荐阅读