您的位置:首页 > 编程语言 > Python开发

新手开发基于Django框架的python web(二)

2016-12-16 10:00 941 查看
接上篇!!!!

一、建立表单视图

建立表单视图即为设计和开发信息录入页面。该页面的基本功能为:提供输入界面,让用户输入文本消息内容等,用户提交后网页自动设置该信息的时间并保存到数据库中。
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还支持内联显示等,在此不多赘述,详见后续内容......

七、创建超级用户,以管理员的身份登录

进入cmd命令窗口,再进入该项目所在目录,输入以下命令:

python manage.py createsuperuser

回车之后按提示操作即可!

八、启动服务器

注意:Django自带有服务器,你也可以根据需要将整个项目挂在Apache或者其他的服务器上!

这里,笔者使用的是Django自带的服务器!

进入cmd命令窗口,再进入该项目所在的目录,输入以下命令:python manage.py runserver  你的服务器ip:端口号     ( #也可以不填,则为默认值)

这里,笔者使用 的是默认值,即在浏览器中输入:http://localhost:8000/admin/进入管理登陆界面:



输入你的超级用户名及密码进入管理主界面:















内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django mysql python web 表单