精华内容
下载资源
问答
  • #在使用url标签的时候,需要给该url传递一个参数 views.py def book(request,book_id): return pass urls.py path('book/<book_id>',views.book,name='book') book.html<a href="{% url 'book' book_id ...
    #在使用url标签的时候,需要给该url传递一个参数
    views.py
    def book(request,book_id):
        return pass
    
    urls.py
    path('book/<book_id>',views.book,name='book')
    
    book.html
    <a href="{% url 'book' book_id ='1' %}">最火的图书</a>

     

    展开全文
  • 写死: {% block page_info %} <h2 style="background-color:red">体育页面</h2> <a href="/">返回首页</a> <a href="/news/">...使用{% url ‘name’ %}标签,动...

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    写死:

    {% block page_info %}
        <h2 style="background-color:red">体育页面</h2>
        <a href="/">返回首页</a>
        <a href="/news/">新闻页</a>
        <a href="/sport/">体育页</a>
    {% endblock page_info %}
    

    使用{% url ‘name’ %}标签,动态反向解析:

        <a href="{% url "index" %}">返回主页</a>
        <a href="{% url "sport" %}">返回体育</a>
        <a href="{% url "news" %}">返回新闻</a>
    
    from django.urls import path, re_path, include
    from mysite import views
    
    urlpatterns = [
        re_path(r"^$", views.index_view, name="index"),
        re_path(r"^sport/", views.sport_view, name="sport"),
        re_path(r"^news/", views.news_view, name="news"),
        re_path(r"^page(\d+)", views.pagen_view, name="pagen")
    ]
    
    from django.http import HttpResponse
    from django.shortcuts import render
    
    def index_view(request):
        return render(request, "base.html")
    
    def sport_view(request):
        return render(request, "sport.html")
    
    def news_view(request):
        return render(request, "news.html")
    
    def pagen_view(request, n):
        return HttpResponse("第" + n + "页")
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}主页{% endblock title %}</title>
    </head>
    <body>
        <h1 style="background-color:blue">注册,登录</h1>
        {% block page_info %}
        <h1 style="background-color:orange">网站主页</h1>
        {% endblock page_info %}
        <a href="{% url 'pagen' '1' %}">第1页</a>
        <a href="{% url 'pagen' '3' %}">第3页</a>
        <h1 style="background-color:grey">联系我们</h1>
        <a href="{% url "index" %}">返回主页</a>
        <a href="{% url "sport" %}">返回体育</a>
        <a href="{% url "news" %}">返回新闻</a>
    </body>
    </html>
    
    {% extends "base.html" %}
    
    {% block title %}体育{% endblock title %}
    
    {% block page_info %}
        <h2 style="background-color:red">体育页面</h2>
        <a href="/">返回首页</a>
        <a href="/news/">新闻页</a>
        <a href="/sport/">体育页</a>
    {% endblock page_info %}
    
    {% extends "base.html" %}
    
    {% block title %}
        新闻
    {% endblock title %}
    
    {% block page_info %}
        <h3 style="background-color:yellow">新闻页面</h3>
    {% endblock page_info %}
    

    https://docs.djangoproject.com/zh-hans/3.1/ref/templates/builtins/#url

    展开全文
  • 主要介绍了Django模板标签中url使用详解(url跳转到指定页面),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Django模板的继承于动态URL的使用 动态URL的使用 1.若模板中的链接地址使用的是硬编码的 URL,例如 `<a href="/rango/about/">About</a>`。当修改url.py中的 URL 映射,就要更新对应的所有 URL 引用。故...

    Django模板的继承与模板标签URL的使用

    模板标签URL的使用

    法一:

    1.若模板中的链接地址使用的是硬编码的 URL,例如 <a href="/rango/about/">About</a>。当修改url.py中的 URL 映射,就要更新对应的所有 URL 引用。使用模板标签 url 查询 urls.py 文件中的 URL 模式,动态插入 URL 路径。在使用动态URL时Django 模板引擎会检查 urls.py 模块中有没有 name 属性的值为 about 的 URL 模式,然后反向匹配URL。

     #在url.py模块中
     url(r'^about/', views.about, name='about'),
     
     #在模板应用动态url时
    <a href="{% url 'about' %}">About</a>
    

    法二:

    URL 模式也可以不通过名称引用,而是直接引用视图,此时,必须保证应用的 views.py 模块中有名为 about 的视图。如下所示“

    <a href="{% url 'rango.views.about' %}">About</a>
    

    对于含有多个应用的Django项目,如果两个应用存在同名的视图,使用URL模板标签就会冲突。

    解决办法:

    在每个应用的url.py模块给应用设置一个名字(因为每个应用的名字不会重复),如下:

    # file:rango/urls.py
    app_name = 'rango'     #为应用起的别名
    urlpatterns = [
        url(r'^$', views.index, name='index'),
        url(r'^about/', views.about, name='about'),
        url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.show_category, name='show_category'),
    ]
    

    此时在使用模板标签URL时就应该如下使用:

    <a href="{% url 'rango:add_page' category.slug %}">Add Page</a>
    

    模板的继承

    整体步骤:

    使用模板继承的基本步骤如下。
    1. 找出模板中重复出现的部分,例如页头、侧边栏、页脚和内容区。有时,你可以把各页面的结构画在纸上,这样便于找出通用的部分。
    2. 创建一个基模板(base template),实现页面的基本骨架结构,提供通用的部分(例如页头的徽标和标题,页脚的版权声明),并定义一些区块(block),以便在不同的页面调整所显示的内容。
    3. 为应用的不同页面创建专门的模板,都继承自基模板,然后指定各区块的内容。

    <!DOCTYPE html>
    {% load staticfiles %}
    <html>
    	<head lang="en">
    	<meta charset="UTF-8" />
    	<title>Rango</title>
    </head>
    	<body>
    	<!-- 各页面的具体内容 -->
    	</body>
    </html>
    

    定义区块:

    创建好基模板之后,接下来要指明模板中的哪些部分可由继承它的模板覆盖。为此,要使用block 标签。例如,可以像下面这样在 base.html 模板中添加 body_block 区块:

    <!DOCTYPE html>
    {% load staticfiles %}
    <html>
    <head lang="en">
    <meta charset="UTF-8" />
    <title>Rango</title>
    </head>
    <body>
    	{% block body_block %}   ############   区块
    	{% endblock %}             ##################
    </body>
    </html>
    

    在区块之间可以指定默认的类容。在创建个页面的模板时,我们就都可以继承base.heml这个基模板,然后根据自己的需求覆盖区块之间的类容,定义自己想要的内容。

    模板继承

    创建好基模板之后,便是更新其他的模板,让其继承基模板,如下:

    {% extends 'rango/base.html' %}
    

    注:若需要继承的的模板要用到静态文件,需要在模板文件上添加

     {% load staticfiles %}
    

    自定义模板标签

    在Django的应用下新建一个templatetages目录,并在该目录下新建两个模块:一个命名为 init.py,内容为空;另一个命名为xxxxxx.py,并在xxxxxx.py写入以下代码:

    from django import template
    from rango.models import Category
    
    register = template.Library()
    @register.inclusion_tag('rango/cats.html')
    def get_category_list():
    	return {'cats': Category.objects.all()}
    
    register = template.Library()为注册自定义标签,注册过系统才能认识,写法固定。但是从register.inclusion_tag() 装饰器可以看出,这个函数需要 rango/cats.html 模板的支持。故应该在templates下的rango下创建一个cats.html模板。
    

    注:修改模板标签后要重启 Django 开发服务器,否则 Django 不会注册新标签。

    展开全文
  • django 模板url的处理

    2016-05-24 21:13:00
    模板中直接添加‘/home’这样的链接是十分不推荐的,因为这是一个相对的链接,在不同网页中打开可能会返回不一样的结果。 所以推荐的是 <a href="{{ object.get_absolute_url }}">{{ object.name }}<...

    在模板中直接添加‘/home’这样的链接是十分不推荐的,因为这是一个相对的链接,在不同网页中打开可能会返回不一样的结果。

    所以推荐的是

    <a href="{{ object.get_absolute_url }}">{{ object.name }}</a>
    

    这种方式,或者

    <a href={% url 'article' article.pk %} >
    

    这里第二种方式同时需要在urls.py中设置,

    url(r'^article/(?P<pk>[0-9]+)/$', article, name='article'),
    

    同时对应的article_view应该有2个参数(request, pk)

      

     

    get_absolute_url是一个方法,需要在model里声明一下;下面是官方的推荐使用方式

     

    不推荐

    # 不推荐
    def get_absolute_url(self): return "/people/%i/" % self.id
    # 推荐
    def get_absolute_url(self):
        from django.core.urlresolvers import reverse
        return reverse('people.views.details', args=[str(self.id)])

    # 不推荐
    def get_absolute_url(self):
        return '/%s/' % self.name

    <!-- BAD template code. Avoid! -->
    <a href="/people/{{ object.id }}/">{{ object.name }}</a>

    # 推荐
    <a href="{{ object.get_absolute_url }}">{{ object.name }}</a>
    

     

      

    更具体的可以参考一下 https://github.com/the5fire/django_selfblog/blob/master/selfblog/blog/models.py

    这里作者使用了“伪静态url”,get_absolute_url方法如下:

    def get_absolute_url(self):
            return '%s/%s.html' % (settings.DOMAIN, self.alias)
    

    alias是自己设置的,生成的链接就是: http://example.com/alias这种,由于一篇文章的链接是固定的,所以看上去像静态页面一样  

      

    参考链接:

    https://github.com/the5fire/django_selfblog

    http://huacnlee.com/blog/django-url-routes-and-get-absolute-url/

    https://docs.djangoproject.com/en/1.9/ref/models/instances/

    转载于:https://www.cnblogs.com/wswang/p/5523510.html

    展开全文
  • Djangourl模板使用总结

    万次阅读 2016-09-23 09:51:39
    Djangourl模板使用总结1.简单正则匹配 使用方法 template.html<a href="{% url 'list_delete' i.id %}">删除 <a href="{% url 'list_modify' i.id %}">修改</a>urls.pyurl(r'^index/list_delete/(?\d+)/$',list_...
  • 应用范围: 模板中的超链接 ... 使用时,在模板中使用url标签,在视图中使用reverse函数,根据正则表达式动态生成地址,减轻后期维护成本。 例子: 项目url.py url(r'^booktest3/', include('...
  • Django_url模板

    2018-05-25 17:07:03
    url模板 1. URL反向解析 URL地址说明: 使用url给视图函数传参数 在url配置中将正则部分小括号括起来。比如: url(r'^time/plus/(\d{1,2})/$', views.hours_ahead) 如果有多个参数则用/隔开,参数需要用...
  • django模板

    2018-10-20 12:24:00
    djongo模板 ...模板url反转  Jinja2 flask使用的模板  DTL (Djiango Template language)带有特殊语法的HTML文件,这HTML文件可以被Django编译,传递参数 #模板路径配置  set...
  • 文章目录Django模板——模板标签 [^^_^]1.简介1.1用途1.2语法1.3常见标签2.标签详解2.1 if/else 标签2.2 for 标签2.3 ifequal/ifnotequal 标签2.4 include 标签2.5 url标签2.6 with 标签2.7 注释标签2.8 autoescape...
  • django模板url标签和view中的reverse(博客地址)功能相同,都是通过制定处理视图来返回一个url。 使用方法: {% url userEdit 12 %} 或者 {% url userEdit %} 这里的userEdit是处理函数,12是传递的参数。...
  • Django(模板url+正则url)

    2018-06-24 12:33:00
    正则url(解决正则部分不能被匹配的问题) -------xxx.html <a href="/teacher_edit-{{ item.id }}">编辑</a> -------url.py path('teacher_edit-(\d+)',views.teacher_edit), --------...
  • Django模板

    2018-08-28 10:29:33
    默认配置下,Django模板系统会自动找到app下面的templates文件夹中的模板文件。 2.配置路径 from .models import add ()里面的东西随意 url(r’^(?P\d+)/$’, add, name=’add’), 不过在对应的HTML文件中要...
  • django重点url,视图函数,模板语言url 1.django重点url无命名分组:re_path() 2.url第一个参:url未命别名分组就不需要views中参数一定,若命别名(?P<year>[0-9]{4})/(?P<month>[0-9]{2})则必须以以 名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,944
精华内容 777
关键字:

django模板url