Django中url模板使用总结

本文介绍了Django中三种URL模板的使用方法:简单正则匹配、结构固定带参数的URL及结构不固定带参数的URL。通过实例展示了如何在模板中生成带有动态参数的链接,并在视图中处理这些请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django中url模板使用总结


1.简单正则匹配

  • 使用方法
    template.html

    <a href="{% url 'list_delete' i.id %}">删除</a>
    <a href="{% url 'list_modify' i.id %}">修改</a>

    urls.py

    url(r'^index/list_delete/(?\d+)/$',list_delete,name='list_delete'),
    url(r'^index/list_modify/(?\d+)/$',list_modify,name='list_modify')

    views.py

    def list_delete(request, id:
        ...
  • 说明
    在Django中一个url的跳转可以不需要通过通过JS来完成,我们可以在url.py中定义这个url的路径,添加相应正则表达式匹配相应id来完成批量的连接跳转定义。这样就会生成类似/index/list_modify/4/这样的url,id号由数据库的数据来定。最后可以在view.py中引用id这个变量,来完成特定操作

2.结构固定带参数的url

  • 使用方法
    template.html

    <a href="{% url 'daily_report' year=2016 month=9 %}">
    <a href="{% url 'daily_report' 2016 9 %}">

    urls.py

    url(r'^index/daily_report/(?P<year>\d+)/(?P<month>\d+)/$',daily_report,name='daily_report'),

    views.py

    def daily_report(request, year, month):
        ...
  • 说明
    结构固定的url模板编写如上所示,需要注意的是,template中参数可以根据Key值指定也可以按照顺序填写。

3.结构不固定带参数的url

  • 使用方法
    template.html

    <a href="{% url 'query' %}?database=db...">

    urls.py

    url(r'^query$', 'query', name='query')

    views.py

    def query(request):
        database = request.GET.get('database')
        ...
  • 说明
    当url结构不固定是,则采用GET方法传递参数,在后台获取各参数的值。
### Django 中的响应模板使用方法 在 Django 中,响应模板是一种通过视图函数返回 HTML 页面的方式。以下是关于如何在 Django使用响应模板的具体说明。 #### 创建并配置模板目录 为了使 Django 能够找到模板文件,需要先设置 `TEMPLATES` 的配置项。通常情况下,在项目的 `settings.py` 文件中会有一个默认的 `TEMPLATES` 配置[^1]: ```python TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], # 设置模板路径 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] ``` 在此配置中,`'DIRS'` 参数指定了模板所在的目录位置。如果未指定,则 Django 将自动查找应用内的 `templates` 子目录[^2]。 #### 编写模板文件 假设我们希望渲染一个简单的页面,可以创建名为 `index.html` 的模板文件,并将其放置于 `templates` 目录下。例如: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>欢迎来到我的网站</title> </head> <body> <h1>{{ title }}</h1> <p>{{ content }}</p> </body> </html> ``` 此模板利用了 Django 模板语言中的变量插值功能,允许动态传递数据到前端显示[^1]。 #### 使用 `render()` 函数返回模板响应 在视图函数中可以通过调用 `render()` 方法来加载模板并将上下文数据传入其中。下面是一个完整的例子: ```python from django.shortcuts import render def home(request): context = { 'title': '首页', 'content': '这是主页的内容部分。', } return render(request, 'index.html', context) ``` 这里定义了一个名为 `home` 的视图函数,它接收 HTTP 请求对象作为参数,构建包含标题和内容字典形式的数据结构,最后调用了 `render()` 来组合这些信息与指定的模板名称一起形成最终的 HttpResponse 对象。 #### URL 映射至视图 为了让用户能够访问该视图所对应的网页地址,还需要编辑 urls.py 文件添加路由规则如下所示: ```python from django.urls import path from .views import home urlpatterns = [ path('', home, name='home'), ] ``` 这样当浏览器向根路径发出 GET 请求时就会触发上面提到的那个处理逻辑从而展示出预期的结果界面[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值