gpt4 book ai didi

Python、Django 1.7 : Redirect all URLs to a single controller

转载 作者:太空宇宙 更新时间:2023-11-03 17:53:29 25 4
gpt4 key购买 nike

我们的基本 URL 是 so.com因此,如果 URL 以 abc 开头,例如

so.com/abc/
so.com/abc/123
so.com/abc?newtab=123
so.com/abc#123
so.com/abc/123?tab=new
...

那么所有这些 URL 模式都应该进入 Abc 类

myapp/urls.py 
...
url(r'^abc[a-zA-Z0-9=#_\?\-/]+$',views.Abc.as_view(),name='abc')

myapp/myviews/abc.py

class Abc(View):
def get(self,request):
...
def foo(user_id):
...
def bar(post_id):
...

在函数get(self,request):中如何获取所请求的abc之后的所有内容。例如

so.com/abc/xyz => /xyz
so.com/abc#123 => 123
so.com/abc?tab=new => ?tab=new
so.com/abc/123?tab=new => tab = new and 123

#123添加在abc后面时,它会自动转换为abc/#123

如何获得这项工作?

我看到了很多问题,但它们没有帮助。

Django Get Absolute URL

What is a "slug" in Django?

How to get the current URL within a Django template?

...

最佳答案

所以,首先,你无法获取#参数。该参数没有发送到服务器,请阅读更多 here

解析 so.com/abc/xyz =>/xyzso.com/abc?tab=new => ?tab=new

url(r'^abc/?$',views.Abc.as_view(),name='abc')
url(r'^abc/(?P<param>\w+)/?$',views.Abc.as_view(),name='abc')

class Abc(View):

def get(self,request,param=None):
print param # in param you get /xyz
tab = request.GET["tab"] # here you get ?tab=new

关于Python、Django 1.7 : Redirect all URLs to a single controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28812092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com