前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django实战-信息资讯-路由配置

Django实战-信息资讯-路由配置

作者头像
小团子
发布2019-07-23 10:38:20
3480
发布2019-07-23 10:38:20
举报
文章被收录于专栏:数据云团数据云团

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

URL 配置就像 Django 所支撑网站的目录。它的本质是 URL 与要为该 URL 调用的视图函数之间的映射表。意思就是遇到哪个 URL 的时候,要对应执行哪个函数。

代码语言:javascript
复制
from django.conf.urls import url
代码语言:javascript
复制
urlpatterns = [
    url(正则表达式,views视图,参数,别名),
    url(r'/', views.index, name='index'),
]

1、urlpartterns 中元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续,谁在上面,就先匹配,会覆盖下面的。

2、若要从url中捕获一个值【即可以从url中获取参数】,只需要在它周围放置一对尖括号(分组匹配)。

3、不需要添加一个前导的反斜杠,因为每个url都有,例如,应该是^active/而不是^/active/。

4、每个正则表达式前面的 r'' 是可选的但建议加上,以防特殊字符未转义。

Django2.0 版本中的路由系统

代码语言:javascript
复制
from django.urls import path
代码语言:javascript
复制
urlpatterns = [
    path('', views.index, name='index'),
    path('detail/<news_id>/', views.news_detail, name='detail'), # 新闻资讯的id 方便找资讯
]

① 资讯应用路由

Django实战-信息资讯-详情页与评论

设置 app 命名空间

代码语言:javascript
复制
app_name = 'news'
urlpatterns = [
    path('', views.index, name='index'),
    path('detail/<news_id>/', views.news_detail, name='detail'), # 新闻的id 方便找新闻
    path('search/', views.search, name='search'),
    path('list/', views.news_list, name='news_list'),
    path('add_comment/', views.add_comment, name='add_comment')
]
代码语言:javascript
复制

② 用户应用路由

Django实战-信息资讯-登录验证

代码语言:javascript
复制
app_name = 'auth'

urlpatterns = [
    # as_view() 将类转化为 对象函数
    path("login/", views.LoginView.as_view(), name='login'),
    path("logout/", views.logout_view, name='logout'),
    path("register/", views.RegisterView.as_view(), name='register'),
    path("img_captcha/", views.img_captcha, name='img_captcha'),
    path("auth/", views.Auth.as_view(), name='auth'),
    path("upload_token/", views.upload_token, name="upload_token"),
    path("token/", views.Token.as_view(), name="token")
]

③ 付费课程应用路由

Django实战-信息资讯-课程管理视图

Django实战-信息资讯-付费下载

代码语言:javascript
复制
app_name = 'course'

urlpatterns = [
    path('', views.course_index, name='index'),
    path('detail/<course_id>/', views.course_detail, name='course_detail'),
    path('course_token/', views.course_token, name='course_token'),
    path('course_order/', views.course_order, name='course_order'),
    path('notify_url/', views.notify_view, name='notify_url'),
    path('order_key/', views.order_key, name='order_key'),
]

④ 订单应用路由

Django实战-信息资讯-订单视图

代码语言:javascript
复制
app_name = 'payinfo'

urlpatterns = [
    path('', views.index, name='index'),
    path('payinfo_order/', views.payinfo_order, name='payinfo_order'),
    path('order_key/', views.order_key, name='order_key'),
    path('notify_view/', views.notify_view, name='notify_view'),
    path('download_payinfo/', views.download_payinfo, name='download_payinfo')
]

⑤ 富文本应用路由

Django实战-信息资讯-UEditor富文本编辑器

Django实战-信息资讯-UEditor文件上传

代码语言:javascript
复制
app_name = 'ueditor'

urlpatterns = [
    # 上传文件/图片
    path("upload/", views.UploadView.as_view(), name='upload')
]

if hasattr(settings, "UEDITOR_UPLOAD_PATH"):
    urlpatterns += [
        path("f/<filename>", views.send_file, name='send_file')
    ]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档