Django视图与模板配置详解:从views到templates的完整指南

今天早睡
今天早睡
发布时间:2026-10-13 | 4人浏览过
原创

本文详细解析Django中视图与模板的核心用法。介绍如何定义接收request的Python函数,配置正则匹配的URLconf以连接视图。涵盖模板目录结构、settings.py中DIRS路径设置,以及主URL与应用URL的两种配置方式,帮助开发者快速掌握Django Web请求处理流程。

Django视图基础

视图

在Django框架中,视图负责处理并回应Web请求。

每个视图函数接收一个request对象作为首个参数,该对象包含了客户端发送的请求详细信息。

视图本质上是定义在views.py文件中的Python函数。

完成视图定义后,必须配置URLconf(URL配置),否则Django无法将请求路由到对应的视图。

在Django中,定义URLconf主要包含两个部分:正则表达式和对应的视图函数。

Django通过正则表达式来匹配用户请求的URL,一旦匹配成功,系统便会调用相应的应用视图进行处理。

需要注意的是,URLconf仅匹配URL的路径部分,即不包含域名和查询参数(query string)的字符串。

在test1/urls.py文件中插入对booktest应用的引用,从而将主URLconf连接到booktest.urls模块。

视图代码


# views.py
# 一个简单的视图,固定返回 hrllo world
def index(request):
  return HttpResponse('hello world')

Django模板配置

模板

模板通常是HTML页面,它可以根据视图中传递的数据动态填充内容。

模板目录应与应用目录(如booktest)保持同级关系。

模板的标准目录结构为templates/应用名(booktest)/*.html。

需要在settings.py文件的TEMPLATES配置项中,将模板地址拼接至DIRS列表中,具体配置为:'DIRS': [os.path.join(BASE_DIR, ‘templates')]。

URLconf配置方式

URL配置代码

方式一:直接修改项目原始的urls.py文件。


# 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),
]

方式二:在具体的应用目录下单独维护urls.py文件。


# 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视图和模板的使用详解即为全部内容,希望能对读者有所帮助,也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表