对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同时兼容python2和python3的8个技巧分享
Jul 11 Python
Python 爬虫的工具列表大全
Jan 31 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
django和vue实现数据交互的方法
Aug 21 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
Django接收照片储存文件的实例代码
Mar 07 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
Python+PyQt5实现灭霸响指功能
May 25 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
详解Python内置模块Collections
Mar 22 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中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
php DES加密算法实例分析
2019/09/18 PHP
JavaScript延迟加载
2021/03/09 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
Python实现测试磁盘性能的方法
2015/03/12 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python获取代码运行时间的实例代码
2018/06/11 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
int在python中的含义以及用法
2019/06/27 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
Linux中如何用命令创建目录
2015/01/12 面试题
应届生法律求职信
2013/10/22 职场文书
毕业生优秀推荐信
2013/11/26 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
员工考核评语大全
2014/04/26 职场文书
查摆问题整改措施
2014/10/24 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis