标签:后台数据库 admin import email 数据表
下面介绍forms模块如何与后台数据库交互,把from提交过来的数据写入到后台数据库中
froms与model结合使用
1、vim modes.py中创建数据表
from django.db import models
class admin(model.Model):
gender_tuple=(
(1,‘男‘),
(2,‘女‘),
)
username = models.Char Field(max_length=50)
email = models.CharField(max_length=50)
gender = models.CharField(max_length=50,choices=gender_tuple)
#choices=gender_tuple相当html中的select方法
vim forms.py
from django import forms
from app01 import models
class AdminModelForm(forms.ModelForm):
思路:如何让ModelFrom与form建立关系
class Meta:
model = models.admin #models里的admin表
fields =(‘username‘,‘email‘) #在html页面指定显示的input字段
自定义插件属性
widgets = {
‘email‘:forms.PasswordIput((attrs={‘class‘:‘auto‘})),
}
2在setting.py中配置下数据库连接信息
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘cmdb‘,
‘USER‘:‘root‘,
‘PASSWORD‘:‘tom123‘,
‘HOST‘:‘‘,
‘PORT‘:‘‘,
}
}
3初始化数据库
python mange.py makemigrations
python mange.py syncdb
4.
views.py里面写一个生成用forms模块input标签的方法
def index3(request):
if request.method == ‘POST’: #判断在html表单里面提交的方式是什么(一般是2种方式 post和get)
form = forms.AdminModelForm(request.POST)
AdminForm是在froms.py里面的一个类,通过forms方法来调用,并赋值给form
if forms.is_valid(): #判断是否合法,输入错误的会在前端页面提示错误信息
data = form.cleaned_data 请求通过接受该数据
form.save() #表示直接讲数据存到数据库中
else:#如果输入规则不匹配在前台显示错误信息
print form.erros.as_data()
print form.erros.as_json()
print form.erros.as_text()
print form.erros.as_ul()
常见错误信息格式
else:
form = forms.AdminModelForm() #判断如果不是post方法提交的
print fors.fields
return render_to_response(‘index3.html’,{‘model’:form})
#把结果返回给前端的index2.html,model是前端Index2.html里面的一个变量用于接受后台返回的数据,form是真实的数据
5.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"/>
<title></title>
</head>
<body>
<form action=‘/index3/‘ method=‘POST‘>
{{ model.as_table}} 已table形式展示出来
{{ model.as_ul}} 已ul形式展示出来
具体查看form父类里面的详细方法---源码
好处省代码
坏处样式不可控
<input type=‘submit‘ value=‘提交‘ />
</form>
</body>
</html>
6.别忘了配置url,即在urls.py添加url指向
标签:后台数据库 admin import email 数据表
原文地址:http://5201299.blog.51cto.com/5191299/1632233