对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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
python生成二维码的实例详解
Oct 29 Python
python 列表删除所有指定元素的方法
Apr 19 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
Python比较配置文件的方法实例详解
Jun 06 Python
PyCharm安装Markdown插件的两种方法
Jun 24 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
Nov 11 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Python实现将xml导入至excel
2015/11/20 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
pandas重新生成索引的方法
2018/11/06 Python
python3的pip路径在哪
2020/06/23 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
int和Integer有什么区别
2013/05/25 面试题
2014大学辅导员工作总结
2014/12/02 职场文书
2019思想汇报范文
2019/05/21 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL