对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重试装饰器示例
Feb 11 Python
python基础教程之lambda表达式使用方法
Feb 12 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
Python装饰器基础详解
Mar 09 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
使用Python设计一个代码统计工具
Apr 04 Python
使用Django连接Mysql数据库步骤
Jan 15 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
基于FME使用Python过程图解
May 13 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 求质素(素数) 的实现代码
2011/04/12 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
javascript 节点排序 2
2011/01/31 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
VSCode配置react开发环境的步骤
2017/12/27 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
高一物理教学反思
2014/01/24 职场文书
影视广告专业求职信
2014/09/02 职场文书
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
golang使用map实现去除重复数组
2022/04/14 Golang
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python