对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实现的检测网站挂马程序
Nov 30 Python
Python实现截屏的函数
Jul 26 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
Python利用Beautiful Soup模块创建对象详解
Mar 27 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
Python中垃圾回收和del语句详解
Nov 15 Python
python实现简单多人聊天室
Dec 11 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
Python使用Pandas库实现MySQL数据库的读写
Jul 06 Python
python画双y轴图像的示例代码
Jul 07 Python
python Django中models进行模糊查询的示例
Jul 18 Python
Python实现给PDF添加水印的方法
Jan 25 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
MVC模式的PHP实现
2006/10/09 PHP
php 操作符与控制结构
2012/03/07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
node.js超时timeout详解
2014/11/26 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
见习期自我鉴定
2014/01/31 职场文书
师恩难忘教学反思
2014/04/27 职场文书
病人慰问信范文
2015/02/15 职场文书