python staticsmodels用法_django froms与models结合使用

下面介绍forms模块如何与后台数据库交互,把from提交过来的数据写入到后台数据库中

froms与model结合使用

1、vim modes.py中创建数据表

from django.db import models

class admin(model.Model):

gender_tuple=(

(1,'男'),

(2,'女'),

)

username = models.CharField(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.

` model`.`as_table` 已table形式展示出来

` model`.`as_ul`  已ul形式展示出来

具体查看form父类里面的详细方法---源码

好处省代码

坏处样式不可控

6.别忘了配置url,即在urls.py添加url指向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值