对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中使用第三方库xlrd来读取Excel示例
Apr 05 Python
python web框架学习笔记
May 03 Python
python通过opencv实现批量剪切图片
Nov 13 Python
Python查找文件中包含中文的行方法
Dec 19 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
详解Python绘图Turtle库
Oct 12 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
使用Django实现商城验证码模块的方法
Jun 01 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
Python字符编码与函数的基本使用方法
2017/09/30 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
单链表反转python实现代码示例
2018/02/08 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
最常使用的求职信
2014/05/25 职场文书
团日活动总结报告
2014/06/25 职场文书
员工趣味活动方案
2014/08/27 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
2019个人半年工作总结
2019/06/21 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis