接上篇!!!!
一、建立表单视图
建立表单视图即为设计和开发信息录入页面。该页面的基本功能为:提供输入界面,让用户输入文本消息内容等,用户提交后网页自动设置该信息的时间并保存到数据库中。
1、在app目录下建立forms.py文件,导入Django的forms模块,并将在models.py文件中建立的数据表类导入,即可建立相应的表单类,代码示例额代码如下所致所示:
# -*- coding: utf-8 -*-
from django import forms
from personconfig.models import Base
# 底库表单
class Base_Form(forms.Form):
base_name = forms.CharField(max_length=30)
base_establish_time = forms.DateTimeField()
base_update_time = forms.DateTimeField()
注意:在models.py文件中,我们建立了一个底库表格类,因此在这个表单文件中,我们要建立相应的表单类Base_Form,它是Django中forms模块Form函数的子类,base_name = forms.CharField(max_length = 30)则是声明所要导入的属性的基本语法格式,base的名称,他的属性是一个字符串类型的字段,最大长度为30,后两句代码类似! 事实上,Django还有另外一种导入技巧:定义一个Meta子类:将数据表类赋值给model,利用fields = '_all_'将所有模型类中的字段导入表单类中,具体实现代码如下:
from django.forms import ModelForm
from polls.models import Base
class Base_Form(ModelForm):
class Meta:
model = Base
fields = '_all_'
二、开发模板文件
在app目录下新建文件夹templates,在该文件夹下新建模板文件Base_register.html,文件内容入下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<h1>底库管理</h1>
<form method="post" enctype="multipart/form-data" >
{{UIf2.as_p}}
<input type="submit" value="ok"/>
</form>
</body>
</html>
三、开发视图
视图是将表单类和页面模板衔接起来。打开website/polls/views.py文件,在其中编辑如下内容:
from django.shortcuts import render,render_to_response
from django.http import HttpResponse
from polls.forms import Base_Form
# Create your views here.
#底库管理视图
def Base_register(request):
if request.method == "POST":
UIf2 = Base_Form(request.POST)
if UIf2.is_valid():
#获取表单信息
base_name = UIf2.cleaned_data['base_name']
base_establish_time = UIf2.cleaned_data['base_establish_time']
base_update_time = UIf2.cleaned_data['base_update_time']
#写入数据库
base = Base()
base.base_name = base_name
base.base_establish_time = base_establish_time
base.base_update_time = base_update_time
base.save()
return HttpResponse('Information entry ok!')
else:
UIf2 = Base_Form()
return render_to_response('Base_register.html',{'UIf2':UIf2})
注意:在代码中,新增了视图函数Base_register(),该函数定义了两种访问方式的不同处理。如果是用户的Post表单提交,则保存Base对象,并返回“Information entry ok!”的信息;如果是普通的访问,则返回Base_register.html模板的渲染结果作为HTTP Response。在视图函数的定义中,用到的http请求的相关内容,在此笔者不加以赘述,需要了解的读者可以参考以下网址:http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html
四、修改website项目的setting.py文件
打开项目所在目录,找到setting.py 文件,在最底端添加以下代码:
#template
TEMPLATES_DIRS=(
'/website/polls/templates'
)
解析:这段代码旨在声明templates模板文件所在的位置,便于django找到html文件,通常而言,目录所在位置可以填写绝对路径,但这种硬代码的编写方式的项目移植性太差,因此,使用相对路径会更好!
五、配置urls.py文件,增加视图函数的路由输入映射
(1)在polls目录下,新建urls.py文件,输入下列代码:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.Base_register, name='Base_register'),
]
解析:从django.conf.urls中导入url,将所有的是视图函数导入,并定义路由函数,添加视图的路由信息。
(2)打开项目目录下的urls.py文件,输入以下代码:
from django.conf.urls import include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
该段代码将app的路由添加至整个项目的路由文件中。
六、在app目录下的admin.py文件中进行注册
这一步很重要,没有这一步你想要的都是显示不出来滴,这就好比不领证的都是不具有法律效力滴
,哈哈哈,开个玩笑啦~记住,django框架中的admin工具相当重要,值得每一位想熟练使用这个框架的读者好好探索!!!!!

打开app目录下的admin.py文件,输入下列代码:
from django.contrib import admin
from polls.models import Base
# Register your models here.
admin.site.register(Base)
解析:这是最简单方式,django还支持内联显示等,在此不多赘述,详见后续内容......