在之前的埔文中说到了对Model的操作以及对url的路由映射等内容,对应django的mtv框架则是完成了学习,Model与viewer的操作,那么本节主要来唠叨一下template,当Model,view ,template三者打通以后,我们就基本可以完成一个小型系统的基本功能

对于template的的使用同样需要在django的setting.py文件中指定路径,如下所示:

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'template')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
同时需要指定以下内容:
STATIC_URL = '/static/'    指定静态资源如 css js等 对于django的路由系统来说,请求最先到达的是路由映射的方法中,将方法将判断此请求是get还是post,如果是get请求一般会将内容渲染到一个无需验证的template文件中 范例
view层代码:
from django.shortcuts import render,render_to_response
from django.http import HttpResponse
from models import Asset
def userlogin(request):
if request.method=='GET':
return render_to_response('web/form.html')
if request.method=='POST':
name=request.POST.get('username',None)
if Asset.objects.filter(username=username).count()==1:
datalist=Asset.objects.all()
return render_to_response('web/assetlist.html',{'data':datalist,'user':'jay'})
else:
return HttpResponse('登录失败') Model层代码()

class userinfo(models.Model):
username=models.CharField(max_length=100)
create_date=models.DateTimeField(auto_now_add=True)
update_date=models.DateTimeField(auto_now=True) template层代码: <!DOCTYPE html> <html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1" cellpadding="20" cellspacing="3" width="300">
{{user}}<br>
{%if user%} 得到了用户
<br>
{%else%}
没有得到用户
{%endif%}
{%ifequal user 'jay'%}
系统返回的用户是jay
{%endifequal%}
{%for item in data %}
<tr>
<td>{{item.id}}</td>
<td>{{item.hostname}}</td>
<td>{{item.createdate|date:'y-m-d H:i:s'}}</td> </tr>
{%endfor%}
</table>
</body>
</html>
在url中做相关映射:
url(r'^login/', userlogin),
打开访问http://localhost:8000/web/login 至此一个简单的model view template三者的连动就已经完成 django同样提供了基于母版页的设计,应用也非常简单 如下所示
母板页面的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>公用的头部</div>
{%block content%}
{%endblock%}
<div>公用的底部</div>
</body>
</html>
内容页面的代码 {%extends "master/layout.html"%}
{%block content%}
啦啦啦,我是母板的占位重写的内容
{%endblock%}
视图函数代码:
def masterpage(request):
return render_to_response('web/index.html') url映射:
url(r'^page/', masterpage),
此时在访问:http://localhost:8000/web/page时就会访问到应用了母板的页面

 

django表单及母板的更多相关文章

  1. python 全栈开发,Day111(客户管理之 编辑权限(二),Django表单集合Formset,ORM之limit_choices_to,构造家族结构)

    昨日内容回顾 1. 权限系统的流程? 2. 权限的表有几个? 3. 技术点 中间件 session orm - 去重 - 去空 inclusion_tag filter 有序字典 settings配置 ...

  2. python3之Django表单(一)

    1.HTML中的表单 在HTML种,表单是在<form>...</form>种的元素,它允许用户输入文本,选择选项,操作对象等,然后发送这些数据到服务器 表单元素允许用户在表单 ...

  3. django表单的api

    django表单的api,参考文档:https://yiyibooks.cn/xx/Django_1.11.6/ref/forms/api.html 绑定与未绑定形式: Form要么是绑定的,要么是未 ...

  4. Django表单API详解

    声明:以下的Form.表单等术语都指的的广义的Django表单. Form要么是绑定了数据的,要么是未绑定数据的. 如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单.如果未绑 ...

  5. 9:django 表单

    django自带表单系统,这个表单系统不仅可以定义属性名,还可以自己定义验证,更有自己自带的错误提示系统 这节我们仅仅粗略的来看一下django表单系统的入门运用(具体的实在太多东西,主要是我觉得有很 ...

  6. django 表单系统 之 forms.Form

    继承forms.Form实现django表单系统 参考: https://www.cnblogs.com/zongfa/p/7709639.html https://www.cnblogs.com/c ...

  7. 关于创建Django表单Forms继承BaseForm的问题

    在创建Django表单时,因为需要验证用户输入的验证码是否正确,因此需要在session里提取当前验证码的值和POST提交过来的值进行比对,如图: form.py from django import ...

  8. Django 表单处理流程

    Django 的表单处理:视图获取请求,执行所需的任何操作,包括从模型中读取数据,然后生成并返回HTML页面(从模板中),我们传递一个包含要显示的数据的上下文.使事情变得更复杂的是,服务器还需要能够处 ...

  9. 第四章:Django表单 - 2:Django表单API详解

    声明:以下的Form.表单等术语都指的的广义的Django表单. Form要么是绑定了数据的,要么是未绑定数据的. 如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单.如果未绑 ...

随机推荐

  1. 《第一行代码》学习笔记18-广播接收器Broadcast_Receiver(1)

    1.网络通信原理,在一个IP网络范围内最大的IP地址是被保留作为广播地址来使用的.某个网络的IP 范围是192.168.0.XXX, 子网掩码是255.255.255.0,则该网络的广播地址是192. ...

  2. Ubuntu 12.04.5 LTS 上安装hadoop 2.6.0后运行自带的例程wordcount

    注:我所有的操作均通过Xshell 5远程连接Ubuntu进行实施 第一步:启动hadoop,利用jps查看hadoop是否已经启动,如果没有启动用start-dfs.sh脚本启动(hadoop2.X ...

  3. jquery uploadify插件多文件上传

    1.jquery uploadify 下载:http://www.uploadify.com/ 2.安装:解压后拷贝的工程目录下面,如:WebRoot/uploaddify 3.配置项说明: uplo ...

  4. HTML中元素水平居中。

    一丶margin:0 auto; 试用最多的方法,简单实用. 二丶vertical-align:middle; 只适用于内嵌元素,比如说一个div中有一个图片和文字,要让图片和文字中线对齐. < ...

  5. Linux_Shell type

    Recommendation is to use the bash shell, because he is strong enough, and absorbed the useful proper ...

  6. java中连接postgresql基本代码

    try { Class.forName( "org.postgresql.Driver" ).newInstance(); String url = "jdbc:post ...

  7. HornetQ

    https://github.com/flsusp/http-queue https://github.com/sfr-network-service-platforms/hq-console htt ...

  8. tp28xx port pin (open-drain )and (push-pull) 和open collector)

    具有开漏(OD)输出的器件是指内部输出和地之间有个N沟道的MOSFET(T1),这些器件可以用于电平转换的应用.输出电压由Vcc'决定.Vcc'可以大于输入高电平电压VCC(up-translate) ...

  9. codility上的问题 (22)

    问题描述: 用1 * 1, 1 * 2的矩形覆盖一个n行m列的矩形,问有多少种方法. 数据范围 : n [1..10^6],  m [ 1..7] 要求复杂度: 时间  O(log(n) * 8 ^m ...

  10. Windows下连接php5.3+sql server2008

    php连接sql server真是一件闹心的事, 折腾了许久,今天有了点起色,还是不错的. mssql extension is not available anymore on Windows wi ...