【发布时间】:2021-04-28 04:50:40
【问题描述】:
我的urls.py 是这样的:
from django.urls import path
from . import views
urlpatterns = [
path('link',views.get_text,name='text'),
path('link/<link>',views.show,name='show')
]
当我输入 url 之类的 http://127.0.0.1:8000/link/https://www.geeksforgeeks.org/gate-cs-notes-gq/ 时,它显示页面未找到,因为它正在检查 slug url 中的 /。我将 url 和其他字段存储在数据库中,所以我想使用 url 检索数据库对象。如何做到这一点,当我在浏览器中输入一个 url 时,它将整个 url 作为 urls.py 中的 link 字段,以便我可以通过这种方式从 views.py 检索 db 对象:
def show(request,link):
objs = Links.objects.filter(link=link).values()
return HttpResponse('link')
【问题讨论】:
-
URL 中的字符在路径中无效。您需要以不同的方式传递 URL,在查询字符串 (request.GET) 中将起作用:
http://127.0.0.1:8000/link/?link=https://www.geeksforgeeks.org/gate-cs-notes-gq/ -
如何定义一个 url 和视图来做到这一点。我从来没有使用过
?。那么,您能否告诉我们,如何为此编写相应的 url 以及如何在视图中捕获它 -
views.get_text是做什么的?您可以使用相同的视图来处理传递或不传递 URL 的两种情况 -
但是,如何判断何时传递了 URL。我在 url 中传递 URL 时遇到问题
-
“?”后面的所有内容会顺利通过,会在request.GET中,不需要声明