本文主要是介绍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"函数中,示例代码如下:
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 syntaxpath('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 %}
这篇关于django网站制作(7)urls中re_path的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!