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

作者:fanlei5458 时间:2021-05-30 00:37:51 

视图

在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')

来源:https://blog.csdn.net/fanlei5458/article/details/80260449

标签:DJango,视图,views,模版,templates
0
投稿

猜你喜欢

  • 使用pandas模块实现数据的标准化操作

    2023-04-12 06:30:03
  • Python中的下划线详解

    2021-10-24 14:17:32
  • Redux saga异步管理与生成器详解

    2023-07-24 02:53:52
  • SQL Server 的T-SQL高级查询详解

    2024-01-17 21:21:04
  • 使用Python实现BT种子和磁力链接的相互转换

    2022-12-21 04:33:25
  • Python如何实现远程方法调用

    2022-11-11 20:42:15
  • sql中时间以5分钟半个小时任意间隔分组的实现方法

    2024-01-25 04:23:39
  • IE Cookie文件格式说明

    2023-03-13 17:17:22
  • 总结Go语言中defer的使用和注意要点

    2024-02-07 01:48:19
  • Python中的rfind()方法使用详解

    2022-05-05 21:30:54
  • php模板引擎技术简单实现

    2023-11-14 13:28:37
  • 使用pandas实现筛选出指定列值所对应的行

    2023-05-06 18:29:53
  • python3发送邮件需要经过代理服务器的示例代码

    2023-07-27 01:00:44
  • Python matplotlib绘图建立画布及坐标系

    2021-03-28 02:56:07
  • Anaconda+VSCode配置tensorflow开发环境的教程详解

    2021-04-03 09:47:32
  • python 从文件夹抽取图片另存的方法

    2022-08-26 13:00:55
  • mysql数据库创建账号、授权、数据导出、导入操作示例

    2024-01-26 06:44:42
  • Python进程间通信 multiProcessing Queue队列实现详解

    2021-06-17 18:53:59
  • 如何让利用Python+AI使静态图片动起来

    2022-06-06 08:15:31
  • Javascript 同时提交多个Web表单的方法

    2024-04-19 10:06:45
  • asp之家 网络编程 m.aspxhome.com