django网站制作(7)urls中re_path

官方url说明

django.urls functions for use in URLconfs | Django documentation | Django  https://docs.djangoproject.com/en/2.2/ref/urls/

lesson19:django.urls:re_path使用

正则表达式 – 语法 | 菜鸟教程  https://www.runoob.com/regexp/regexp-syntax.html

各种字符:^:caret

re_path与path用途一样,re_path可以使用正则表格式。

正则表达式中定义变量,需要使用圆括号将变量括起来,如果参数有名字,需要使用:?P<参数的名字>。然后在后面添加正则表达式的规则。

一般情况下,建议使用path即可。

示例如下:

from django.contrib import admin
from django.urls import path, re_path
# from django.urls import re_path
from znwork.views import index1
from znwork.views import *


urlpatterns = [
    path('', index1),
    path('zn/', znwork_addrecords),
    path('admin/', admin.site.urls),
    path('d/d/', index1),

    re_path(r"list/(?P<year>\d{4})/$", article_list),
    # 例:浏览器地址栏中输入http://127.0.0.1:8000/list/1111,假设1111为article这个视图函数传过来的参数。则执行article_list这个视图函数。
    # 正则表达式中,如果接收参数或变量,格式:(?P<变量名称>)。?P是参数名称的前导字符。
    # (?P<year>\d{4})含义:名称为“year”的参数,长度为4个0-9之间的数字。

lesson20:django.urls:reverse函数补充

reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)

path实现通过url访问视图函数。如果知道视图函数,返回对应的url,需要通过reverse函数实现。

reverse

如果在反转url的时候,需要添加参数,可以传递“kwargs"参数到“reverse"函数中,示例代码如下:

扫描二维码关注公众号,回复: 9484442 查看本文章

detail_url=reverse('detail',kwargs={"article_id:1,'page':2})

如欲添加查询字符串的参数,则必须手动的进行拼接,示例代码如下:

login_url=reverse('login')+"?next=/"

urls.py文件


from django.contrib import admin
from django.urls import path,re_path
from znwork.views import index1
from znwork.views import *

urlpatterns = [
    path('', index1),
    path('zn/', znwork_addrecords),
    path('admin/', admin.site.urls),
    # re_path(r'^detail/(?P<znwork_ida>)', detail, name='de2'),   #这个提示You have an error in your SQL syntax

    path('detail/<int:znwork_ida>', detail, name='de2')   # 这个可用,不提示错误
    # 对应html模板语句 <td><a href="{%  url 'de2' znwork_ida=m_datum.0%}">{{ m_datum.0 }}</a></td>

views.py文件

def detail(request, znwork_ida):
    cur3 = get_cursor()
    print(znwork_ida)
    print("ddddddddddd")
    cur3.execute("select * from dailyreport where znwork_id=%s" % znwork_ida)
    sss = cur3.fetchone()
    print(sss)
    return render(request, 'recorddetail.html', context={"jjj": sss})

模板文件 

{% extends 'base.html' %}
{% block content %}


    <h4 align="center"  > 月度数据汇总表</h4>
    <table align="center" style="border-collapse:collapse;font-size:3px;text-align:center;"  border="1px" cellpadding="3" cellspacing="0"   >

        <thead>
            <tr>
                <th>序号</th>
                <th>znwork_id</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>序号</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>序号</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>序号</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>序号</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>
                <th>项目</th>


            </tr>
        </thead>
        <tbody>


            {% for m_datum in m_data %}
                <tr>
                    <td>{{ forloop.counter }}</td>
                    <td><a href="{%  url 'de2' znwork_ida=m_datum.0%}">{{ m_datum.0 }}</a></td>
                    <td>{{ m_datum.1 }}</td>
                    <td>{{ m_datum.2 }}</td>
                    <td>{{ m_datum.3 }}</td>
                    <td>{{ m_datum.4 }}</td>
                    <td>{{ m_datum.5 }}</td>
                    <td>{{ m_datum.6 }}</td>
                    <td>{{ m_datum.8 }}</td>
                    <td>{{ m_datum.9 }}</td>
                    <td>{{ m_datum.10 }}</td>
                    <td>{{ m_datum.11 }}</td>
                    <td>{{ m_datum.12 }}</td>
                    <td>{{ m_datum.13 }}</td>
                    <td>{{ m_datum.6 }}</td>
                    <td>{{ m_datum.8 }}</td>
                    <td>{{ m_datum.9 }}</td>
                    <td>{{ m_datum.10 }}</td>
                    <td>{{ m_datum.11 }}</td>
                    <td>{{ m_datum.12 }}</td>
                    <td>{{ m_datum.13 }}</td>
                    <td>{{ m_datum.14 }}</td>
                    <td>{{ m_datum.15 }}</td>
                    <td>{{ m_datum.16 }}</td>
                    <td>{{ m_datum.17 }}</td>
                    <td>{{ m_datum.18 }}</td>

                </tr>

            {% endfor %}

        </tbody>




    </table>

{% endblock %}
发布了306 篇原创文章 · 获赞 114 · 访问量 117万+

猜你喜欢

转载自blog.csdn.net/sjpljr/article/details/103145423
今日推荐