视图基础知识3
1数据操作视图
数据操作视图是对数据模型进行操作,如增、删、改,从而实现Django与数据库的数据交互。一共有4种视图类分别是FormView、CreateView、UpdateView和DeleteView。
- FormView:视图类使用内置的表单功能,通过表单实现数据验证、响应输出等功能,用于显示表单数据
- CreateView:实现模型的数据新增功能,通过内置的表单功能实现数据新增
- UpdateView:实现模型的数据修改功能,通过内置表单功能实现数据修改
- DeleteView:实现模型的数据删除功能,通过内置的表单功能实现数据删除
1.1表单视图FormView
视图类FormView的底层是由TemplateResponseMixin、ContextMixin和View组成。其具有视图类TemplateView的所有属性和方法,同时还新增了:
- initial:由FormMixin定义,设置表单初始化的数据
- form_class:由FormMixin定义,设置表单类
- success_url:由FormMixin定义,设置重定向的路由地址
- prefix:由FormMixin定义,设置表单前缀(即表单在模板的上下文),可在模板里生成表格数据
- get_initial():由FormMixin定义,获取表单初始化的数据
- get_prefix():由FormMixin定义,获取表单的前缀
- get_form_class():由FormMixin定义,获取表单类
- get_form():由FormMixin定义,调用get_form_kwargs()完成表单类的实例化
- get_form_kwargs():由FormMixin定义,执行表单类实例化过程
- get_success_url():由FormMixin定义,获取重定向路由地址
- form_valid():由FormMixin定义,表单有效将会重定向到指定的路由地址
- form_invalid():由FormMixin定义,表单无效将返回空白表单
- get_context_data():由FormMixin定义,获取模板上下文的数据内容
- get():有ProcessFormView定义,定义HTTP的GET请求的处理方法
- post():有ProcessFormView定义,定义HTTP的POST请求的处理方法
示例代码:
app的form.py
from django import forms
from .models import PersonInfo
class PersonInfoForm(forms.ModelForm):
class Meta:
model = PersonInfo
fields = '__all__'
app的urls.py
from django.urls import path
from .views import *
urlpatterns = [
path('', index.as_view(), name='index'),
path('result', result, name='result')
]
app的views.py
from django.views.generic.edit import FormView
from .form import PersonInfoForm
from django.http import HttpResponse
def result(request):
return HttpResponse('Success')
class index(FormView):
initial = {
'name': 'Betty', 'age'