标签:依赖 alt 工作 mode short 建立 modelform ret 编写
1、前面我们记得,要在admin后台增加数据,需要使用models模块。现在不依赖于后台就能增加数据,则需要forms模块。
通过pycharm,在test_app下面增加一个forms.py。
from django import forms
from .models import CnbTitle
# 注意,如果我们只是想在网页上呈现一个表格,然后完成输入,根本不需要forms模块,直接在html里使用<form></form>即可
# 通过类名写法,大概就能知道这个form类是为CnbTitle服务的;
# 更简单点说:ModelForm就是链接模型和表格的(=model+form),django的语法非常平易近人,你看到一个词,大概就知道它干嘛
class CnbTitleForm(forms.ModelForm):
# ModelForm内嵌了一个Meta类,这个类通过定义属性,建议模型和表格的关系,以及表格的一些式样
class Meta:
# 表示是哪个类
model = CnbTitle
# 表示表格将里将包含类的哪些属性,这里只包含text属性
fields = [‘text‘]
# 表示这个属性放在表格时,是否需要有标签
labels = {‘text‘: ‘输入标题‘}
通过注释可以看的很清楚,继续补充几点:
(1)表格的定义也是用类的形式
(2)简单地将表格的各行内容和类的各项属性连接起来即可,完成这个工作用ModelForm即可。
2、用试图呈现这个表格
现在我们暂不考虑更多其他内容,先简单呈现即可。
由于forms.py已经添好了,我们首先将forms.py里的类引入到views函数中,假设这个函数是form_test;
然后按照惯例,配置url,使其指向form_test;
最后建立一个test_from.html,可以为空,等函数编好后再去想html怎么写。
首先看views函数:
from django.shortcuts import render
from django.shortcuts import HttpResponse
from .models import CnbTitle
from .forms import CnbTitleForm
# 简单地呈现一个表格
def test_form(request):
form = CnbTitleForm
context = {‘form‘: form}
return render(request, ‘test_form.html‘, context)
可以看见这个函数非常简单:将引入的表格类赋值给一个变量,然后将变量包装为字典,然后传值到指定页面即可。
3、编写模板页面,使表格最终被呈现出来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test Form</title>
</head>
<body>
<p>一个简单的表格:</p>
<form action="" method="">
{% csrf_token %}
{{form.as_p}}
<button name="submit">提交</button>
</form>
</body>
</html>
4、最终我们可以看到

标签:依赖 alt 工作 mode short 建立 modelform ret 编写
原文地址:https://www.cnblogs.com/lzhshn/p/11380219.html