对DJango视图(views)和模版(templates)的使用详解


Posted in Python onJuly 17, 2019

视图

在django中,视图对WEB请求进行回应

视图接收reqeust对象作为第一个参数,包含了请求的信息

视图就是一个Python函数,被定义在views.py中

定义完成视图后,需要配置urlconf,否则无法处理请求

在Django中,定义URLconf包括正则表达式、视图两部分

Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图

注意:只匹配路径部分,即除去域名、参数后的字符串

在test1/urls.py插入booktest,使主urlconf连接到booktest.urls模块

视图代码

# views.py
# 一个简单的视图,固定返回 hrllo world
def index(request):
  return HttpResponse('hello world')

模板

模板是html页面,可以根据视图中传递的数据填充值

模板和应用booktest是同级目录

模板的结构templates/应用名(booktest)/*.html

将模板的地址信息拼接在settings.py文件中的TEMPLATES的DIRS值中:'DIRS': [os.path.join(BASE_DIR, ‘templates')],

urls代码

方式一: 直接修改原始的urls

# fanlie/fanlei/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from booktest import views

urlpatterns = [
  url(r'^admin/', include(admin.site.urls)),
  # 如果匹配的是空就就调用views.index返回首页
  url(r'^$',views.index),
]

方式二: 在应用目录下修改

# fanlie/fanlei/urls.py
urlpatterns = [
  url(r'^admin/', include(admin.site.urls)),
  # 什么都不干直接去booktest.urls去找相应的匹配
  url(r'^',include('booktest.urls')),
]

# fanlei/booktest/urls.py
from django.conf.urls import url
from . import views

urlpatterns = [
  # js结尾就是调用视图中的函数 js
  url(r'.*.js',views.js),
  # 直接访问代表是首页,调用视图中的函数index
  url(r'^$', views.index),
  # 如果是image开头的代表是图片,直接让DJango去打开对应的图片返回
  url(r'^images/(?P<path>.*)', 'django.views.static.serve', {'document_root':'/home/python/Desktop/fanlei/templates/booktest/images'}),

]

上面模板用到的视图

from django.shortcuts import render

def index(request):
  # 返回引号中的文件的内容
  return render(request, 'booktest/index.html')

def js(request):
  # 返回引号中的文件的内容
  return render(request,'booktest/jquery-1.12.4.js')

以上这篇对DJango视图(views)和模版(templates)的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
对python周期性定时器的示例详解
Feb 19 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
基于python实现数组格式参数加密计算
Apr 21 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
用python写PDF转换器的实现
Oct 29 Python
react+django清除浏览器缓存的几种方法小结
Jul 17 #Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 #Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 #Python
对django views中 request, response的常用操作详解
Jul 17 #Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 #Python
python递归法解决棋盘分割问题
Jul 17 #Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 #Python
You might like
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
财务人员岗位职责
2015/02/03 职场文书
技术负责人岗位职责
2015/02/10 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python