对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实现ipsec开权限实例
Nov 11 Python
Python中线程编程之threading模块的使用详解
Jun 23 Python
python daemon守护进程实现
Aug 27 Python
用python制作游戏外挂
Jan 04 Python
python 产生token及token验证的方法
Dec 26 Python
解决nohup执行python程序log文件写入不及时的问题
Jan 14 Python
浅谈python标准库--functools.partial
Mar 13 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
Apr 03 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
Apr 29 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 Python
Python 统计序列中元素的出现频度
Apr 26 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
德生PL660的电路分析和打磨
2021/03/02 无线电
php 远程关机操作的代码
2008/12/05 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
matplotlib绘制动画代码示例
2018/01/02 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
python和php学习哪个更有发展
2020/06/17 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
学生拾金不昧表扬信
2014/01/21 职场文书
公司委托书范本
2014/04/04 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
垃圾桶标语
2014/06/24 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
1000字打架检讨书
2014/11/03 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
安徽导游词
2015/02/12 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL