【问题标题】:Doubts regarding Django views对 Django 视图的怀疑
【发布时间】:2018-12-11 01:55:56
【问题描述】:

我正在使用 django 和 mongodb 建立一个网站。我对 django 的观点有一些疑问。我是 django 的新手,直到现在我才明白视图可以用 django 中的 url 映射。但是我很困惑,如果我有这样的 mongodb 文档:

{
  "articles":{
       "Mercedes":"path of this article",
       "BMW":"path of this article",
       "Jeep":"path of this article",
   }
}

我希望用户应该在地址栏中看到文章名称,例如:

mydomain.com/mercedes...

但是在django中,我们将视图映射到urls.py中,所以我需要为每篇文章写一个函数(视图)并且需要像这样映射到urls.py中:

from django.contrib import admin
from django.urls import path
from my1app import views
from django.views.generic import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),
    path('articles/mercedes',views.viewMercedesArticle, name='viewMercedesArticle')
]

或者这可以有一个视图,可以在用户的​​地址栏中显示多篇文章和文章名称的网址

【问题讨论】:

    标签: django mongodb


    【解决方案1】:

    Django 使用正则表达式进行 url 匹配,你可以使用 url 之类的

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', views.index, name='index'),
        path('articles/(?P<article>\w+)/',views.viewMercedesArticle, 
             name='viewMercedesArticle')
    ]
    

    在你的观点中你可以将文章名称作为

    def viewMercedesArticle(request, article):
        pass # here article is dynamic
    

    您可以参考此link 了解更多详情。

    【讨论】: