对DJango视图(views)和模版(templates)的使用详解

yipeiwu_com5年前Python基础

视图

在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设计】。

相关文章

Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法

Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法

本文实例讲述了Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm': Invalid argument的解决方法。分享给大...

python中嵌套函数的实操步骤

python中嵌套函数的实操步骤

在python中如何嵌套函数? 首先打开python编辑器并且写上注释的内容。 然后定义一个函数addstr 在addstr函数里面写上内容,内容是写入文件内容。 新建第二个函数...

Python 3.8 新功能全解

Python 3.8是Python语言的最新版本,它适合用于编写脚本、自动化以及机器学习和Web开发等各种任务。现在Python 3.8已经进入官方的beta阶段,这个版本带来了许多语法...

Python enumerate函数遍历数据对象组合过程解析

这篇文章主要介绍了Python enumerate函数遍历数据对象组合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍...

TensorFlow 实战之实现卷积神经网络的实例讲解

本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过。 一、相关性概念 1、卷积神经网络(Convolu...