Django (一)常用函数及模板文件标签解析

 1.render函数解析

def home(request):
    # return HttpResponse('Hello, World!')
    boards = Board.objects.all()
    return render(request, 'boards/home.html', {'boards': boards})

#context意思这里home.html在Django中称作Template(模板文件),使用render方法将第三个参数中的值替换Template中的指定模板参数,最终返回一个正常的HTML页面。

以下为home.html文件对应boards参数上下文代码:

        {% for board in boards %}
            <tr>
                <td>
                    <a href="{% url 'board_topics' board.pk %}">{{ board.name }}</a>
                    {#                    <a href="{% url 'home' %}">{{ board.name }}</a>#}
                    <small class="text-muted d-block">{{ board.description }}</small>
                </td>
                <td class="align-middle">0</td>
                <td class="align-middle">0</td>
                <td></td>
            </tr>
        {% endfor %}

2、<link>标签定义文档与外部资源的关系,最常见用途是链接样式表。

<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">

<a></a>标签定义超链接,用于从一张页面链接到另一张页面。

<a class="navbar-brand" href="{% url 'home' %}">Django Boards</a>

 

3、模板标签

html中{% url 'board_topics' board.pk %}

返回指定视图函数和可选参数对应的绝对路径(不带域名的 URL)。路径中的特殊字符会使用iri_to_uri()编码。使用这种方式输出链接符合 DRY 原则,因为无需在模板中硬编码 URL。

{% url 'some-url-name' v1 v2 %}第一个参数是视图函数的路径,格式为package.package.module.function,可以是放在引号里的字面量,也可以是上下文变量。余下的参数是可选的,以空格分开,用于指定 URL 中的参数。

4、url函数用法

urlpatterns = [
    path('', views.home, name='home'),
    url(r'^sign/$', accounts_views.signup, name='signup'),
    url(r'^login/$', auth_views.LoginView.as_view(template_name='boards/login.html'), name='login'),
    url(r'^logout/$',auth_views.LogoutView.as_view(),name='logout'),
    url(r'^boards/(?P<pk>\d+)/$', views.board_topics, name='board_topics'),
    url(r'^boards/(?P<pk>\d+)/new/$', views.new_topic, name='new_topic'),
    path('admin/', admin.site.urls),

]

url函数正则表达式

url(r'^boards/(?P<pk>\d+)/$', views.board_topics, name='board_topics')

^表示以...开头,\d表示0-9的数字,$表示以...结尾;

前面的一个 r 表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。

(?P<pk>\d+)分组匹配

P是正则表达式中的命名组的意思,可以将这个P看成是单词Pattern的缩写

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值