对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 中 Meta Classes详解
Feb 13 Python
python实现梯度下降算法
Mar 24 Python
python多线程下信号处理程序示例
May 31 Python
python字符串替换第一个字符串的方法
Jun 26 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 Python
python机器学习实现决策树
Nov 11 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
Python 解析pymysql模块操作数据库的方法
Feb 18 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 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中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
PHP发送短信代码分享
2015/08/11 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python装饰器用法实例总结
2018/05/26 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
欢迎领导检查标语
2014/06/27 职场文书
2014年医院工作总结
2014/11/20 职场文书
感谢信的格式
2015/01/21 职场文书
感恩教师主题班会
2015/08/12 职场文书