在之前的埔文中说到了对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时就会访问到应用了母板的页面

 

最新文章

  1. [转]架构蓝图--软件架构 &quot;4+1&quot; 视图模型
  2. 深度浅出immutable.js
  3. javscript闭包的准备工作 -- 作用域与作用域链
  4. 安装Mysql提示1045错误解决方法
  5. 【转载】-- vi/vim使用
  6. git在myelispse中的安装
  7. UNIX高级环境编程1
  8. js history对象 手机物理返回键
  9. postman 第1节 安装启动(转)
  10. postman - 基本操作
  11. Jquery实现两级联动
  12. 刚收到一个吃瓜群众看了肯定不信的offer!
  13. Codeforces Round #443 (Div. 1) C. Tournament
  14. Underscore源码阅读极简版入门
  15. zTree树形菜单交互选项卡效果实现
  16. hql里面union和union all的区别
  17. A1010. Radix
  18. PHP黑魔法(该篇文章转自:http://www.91ri.org/12634.html 目的是作为自己的笔记方便查找)
  19. 2019.01.17 bzoj1854: [Scoi2010]游戏(二分图匹配)
  20. 以太坊—P2P网络

热门文章

  1. .net 将xml转换成DateSet
  2. HTTP get、post请求
  3. phpmyadmin开启远程服务器连接
  4. Tempter of the Bone--hdu1010--zoj2110
  5. python小程序之并发连接
  6. IOS开发笔记(4)数据离线缓存与读取
  7. ZOJ 3188 ZOJ 3188 Treeland Exhibition(树形DP)
  8. GetSystemTime API可以得到毫秒级时间
  9. 《Programming WPF》翻译 第9章 1.自定义控件基础
  10. Powershell 执行外部命令