为什么不将 django url 中捕获的变量作为字符串传递给视图?
Why isn't variable caught in django url being passed to view as a string?
我试图在我的 urls.py 文件中的 url 中捕获一个变量,然后将它传递给我的视图文件中的一个函数,我想在其中将其用作字符串:
# urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^posts/(?P<title>)', views.blog_ronn_post, name='blog_ronn_post'),
]
# views.py
from django.http import HttpResponse
def blog_ronn_post(request, title):
html = "<html><body>This is the page for the blog titled: {s} </body></html>".format(title)
return HttpResponse(html)
但是这不起作用。在我的开发浏览器中, html 出现了,但在最后一个冒号之后什么也不显示。我不认为我的 Python 3 语法有问题,就好像我尝试在格式括号中使用字符串一样,例如:
html = "<html><body>This is the page for the blog titled: {s} </body></html>".format('Title 1')
有效,显示“...标题:标题 1”。那么为什么它不通过我的 title 字符串呢?我的理解是 title 是从 url 传递给 views 的字符串,所以应该没有问题。 django 的新手,如果我犯了一个明显的错误,我深表歉意。
因为你没有给它匹配的东西。
r'^posts/(?P<title>\w+)$'
我试图在我的 urls.py 文件中的 url 中捕获一个变量,然后将它传递给我的视图文件中的一个函数,我想在其中将其用作字符串:
# urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^posts/(?P<title>)', views.blog_ronn_post, name='blog_ronn_post'),
]
# views.py
from django.http import HttpResponse
def blog_ronn_post(request, title):
html = "<html><body>This is the page for the blog titled: {s} </body></html>".format(title)
return HttpResponse(html)
但是这不起作用。在我的开发浏览器中, html 出现了,但在最后一个冒号之后什么也不显示。我不认为我的 Python 3 语法有问题,就好像我尝试在格式括号中使用字符串一样,例如:
html = "<html><body>This is the page for the blog titled: {s} </body></html>".format('Title 1')
有效,显示“...标题:标题 1”。那么为什么它不通过我的 title 字符串呢?我的理解是 title 是从 url 传递给 views 的字符串,所以应该没有问题。 django 的新手,如果我犯了一个明显的错误,我深表歉意。
因为你没有给它匹配的东西。
r'^posts/(?P<title>\w+)$'