您的位置:首页 > 编程语言 > Go语言

Django Form表单

2013-10-20 19:57 399 查看
如果在Django中,需要将一个表单中的数据保存在数据库中,可以通过如下方式。

首先,确定数据表,它应该包含一个id主键(自增长),和一个username的20变长字符串。

那么,首先定义model:

from django.db import models
class Test(models.Model):
username = models.CharField(max_length=20)


此时,在cmd中执行manage.py syncdb,数据库中即会出现一张如下格式的数据表:

- Table: userauth_test

-- DROP TABLE userauth_test;

CREATE TABLE userauth_test

(

  id serial NOT NULL,

  username character varying(20) NOT NULL,

  CONSTRAINT userauth_test_pkey PRIMARY KEY (id)

)

WITH (

  OIDS=FALSE

);

ALTER TABLE userauth_test OWNER TO ****;

这时定义与model相对应的form,并与model关联起来:

from django import forms
from django.db import models
from userauth.models import *
class LoginForm(forms.ModelForm):
username = forms.CharField(max_length=20)

class Meta:
model = Test

再定义起到胶水作用的view(Django的是MVT架构,这里的view类似于MVC架构中的C层部分):

def login(request):
username = request.POST['username']
form = LoginForm({'username':username})
test = form.save(commit=False)
test.save()
form.save()
return render_to_response('login.html',RequestContext(request,{'username':username}))

即先从request当中取得表单提交的username,然后再用model保存,最后在form保存;然后再转向login.html。

login.html的代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>EasyBug1.0</title>
</head>
<body>
<form action="login" method="post">{% csrf_token %}
<p>username:<input type="text" name="username" value="{{username}}"/>
<input type="submit" name="login"/></p>
</form>
</body>
<html>

在urls.py中配置好url映射后,访问对应的url,填好表单。既可以将表单中的相应数据存入数据库中了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: