标签: django-urls

在Django中使用Python正则表达式

我有一个网址:

http://www.example.com/org/companyA

我希望能够使用正则表达式将CompanyA传递给视图.

这就是我所拥有的:

(r'^org/?P<company_name>\w+/$',"orgman.views.orgman")
Run Code Online (Sandbox Code Playgroud)

它不匹配.

理想情况下,所有看起来像example.com/org/X的URL都会将x传递给视图.

提前致谢!

python regex django django-urls

10
推荐指数
1
解决办法
2万
查看次数

Django:使用@login_required并设置LOGIN_URL时出现信息泄漏问题

当使用@login_required装饰器并设置LOGIN_URL变量时,我发现了一种信息泄漏.

我有一个网站,要求所有内容的强制登录.问题是,当它是现有页面时,您将被重定向到登录页面,并设置下一个变量.

所以当没有登录并要求:

 http://localhost:8000/validurl/
Run Code Online (Sandbox Code Playgroud)

你看到了这个:

 http://localhost:8000/login/?next=/validurl/
Run Code Online (Sandbox Code Playgroud)

在请求不存在的页面时:

 http://localhost:8000/faultyurl/
Run Code Online (Sandbox Code Playgroud)

你看到了这个:

 http://localhost:8000/login/
Run Code Online (Sandbox Code Playgroud)

这揭示了一些我不想要的信息.我想过覆盖login方法,强制下一个为空并在这个子类方法上调用'super'.

另一个问题是我的一些测试在没有设置LOGIN_URL的情况下失败.他们重定向到'/ accounts/login /'而不是'/ login /'.因此,为什么我想使用LOGIN_URL但禁用'自动下一个'功能.

谁可以对这个问题有所了解?

非常感谢.

杰拉德.

python authentication django django-urls

10
推荐指数
1
解决办法
709
查看次数

Django url标记了多个参数

我有两个类似的代码.第一个按预期工作.

urlpatterns = patterns('',
                       (r'^(?P<n1>\d)/test/', test),
                       (r'', test2),
{% url testapp.views.test n1=5 %}
Run Code Online (Sandbox Code Playgroud)

但添加第二个参数会使结果返回空字符串.

urlpatterns = patterns('',
                           (r'^(?P<n1>\d)/test(?P<n2>\d)/', test),
                           (r'', test2),)


{% url testapp.views.test n1=5, n2=2 %}
Run Code Online (Sandbox Code Playgroud)

意见签名:

def test(request, n1, n2=1):
Run Code Online (Sandbox Code Playgroud)

python django django-urls

10
推荐指数
1
解决办法
2万
查看次数

包括Django应用程序的url.py导致404

我在mysite项目的urls.py中有以下代码.

/mysite/urls.py

from django.conf.urls.defaults import *
urlpatterns = patterns('',
    (r'^gallery/$', include('mysite.gallery.urls')),
)
Run Code Online (Sandbox Code Playgroud)

当我尝试访问gallery/urls.py中设置的网址时,这会产生404页面.

/mysite/gallery/urls.py

from django.conf.urls.defaults import *
urlpatterns = patterns('',  
    (r'^gallery/browse/$', 'mysite.gallery.views.browse'),
    (r'^gallery/photo/$', 'mysite.gallery.views.photo'),
)
Run Code Online (Sandbox Code Playgroud)

404错误

Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
^gallery/$
The current URL, gallery/browse/, didn't match any of these.
Run Code Online (Sandbox Code Playgroud)

此外,该网站托管在媒体寺(dv)服务器上并使用mod_wsgi

python django url-routing django-urls http-status-code-404

10
推荐指数
1
解决办法
8593
查看次数

以编程方式在Django中添加URL模式?

有没有办法以编程方式将URL模式添加到Django而无需重新启动服务器?

或者有没有办法强制Django重新处理/缓存URL模式(URLconf)?

python django django-urls django-admin django-settings

10
推荐指数
1
解决办法
3431
查看次数

列出所有郊区并检查是否在python中被破坏

我有一个在django开发的网站,其中包括大约25000个郊区.我需要一些东西来列出网站中的所有网址,并检查链接是否定期中断,所以我更喜欢做一些我可以作为脚本运行的东西.

我应该遵循哪种方法?任何的想法 ?

django django-urls

10
推荐指数
2
解决办法
2827
查看次数

如何在django-allauth上自定义activate_url?

我使用Django和Django REST框架作为后端,AngularJS作为前端.

对于用户管理,我使用的是django-rest-auth,它使用django-allauth进行用户管理.作为基础,我使用了django-rest-auth的demo.

问题出在注册后,当您尝试验证通过激活网址发送电子邮件的电子邮件时: 127.0.0.1:8000/account/confirm-email/yhca8kmijle0ia7k3p7ztbvnd2n1xepn9kyeuaycmlzll5xw19ubjarnvjrot7eu/

其中*127.0.0.1:8000是Django后端.

但在我的情况下,它应该发送类似的URL localhost:9000/#/verifyEmail/akv2dcvrfnk9ex5fho9jk0xx1ggtpfazmi8sfsoi2sbscoezywfp7kzcyqnizrc0.所以这个验证将从前端完成,localhost:9000我的AngularJS前端在哪里.

有没有办法在django-allauth上定制activate_url?

django django-urls angularjs django-rest-framework django-allauth

9
推荐指数
3
解决办法
2190
查看次数

捕获 yyyy-mm-dd 日期的 Django url

如何在 Django 中捕获包含 yyyy-mm-dd 的 url。所以就像 www.mydomain.com/2011-02-12。我试过:

url(r'^(?P<date>\d{4}-\d{2}-\d{2})/$', views.index, name='index'), 
Run Code Online (Sandbox Code Playgroud)

但是,服务器说找不到页面。

python regex django django-urls

9
推荐指数
2
解决办法
1万
查看次数

django 警告 urls.W005 URL 命名空间不唯一

我无法理解以下警告。我有一个名为“v1”的命名空间,我使用这些命名空间来确定 API 中的版本控制(使用 django Rest 框架)。所以,我有这样的路径:

/v1/accounts/me
/v1/listings
Run Code Online (Sandbox Code Playgroud)

这是 URL 配置 (project/urls.py):

urlpatterns = [
    path('admin/', admin.site.urls),
    path('v1/accounts/', include('accounts.urls', namespace='v1')),
    path('v1/listings/', include('listings.urls', namespace='v1'))
]
Run Code Online (Sandbox Code Playgroud)

账户/urls.py

app_name = 'accounts'

urlpatterns = [
    url(r'^token/$', views.obtain_auth_token, name='obtain_token'),
    url(r'^me/$', my_account, name='my_account'),
]
Run Code Online (Sandbox Code Playgroud)

清单/urls.py

app_name = 'listings'

urlpatterns = [
    path('', recent_listings, name='recent_listings')
]
Run Code Online (Sandbox Code Playgroud)

一切都按预期进行。所有网址均已发送。版本控制有效。但是,我不断收到以下错误:

?: (urls.W005) URL 命名空间“v1”不是唯一的。您可能无法反转此命名空间中的所有 URL

我知道这是一个警告,我也许可以抑制它;但是,我想了解为什么会发生这种情况。根据我的 URLconf 和此警告,似乎不能有多个命名空间路径作为“兄弟”。它们需要是一个命名空间路径的子级(例如“v1”)。如果我的理解是正确的,我应该如何创建这个 URL 配置。

python django django-urls

9
推荐指数
1
解决办法
2万
查看次数

我什么时候应该在“re_path”上使用“path”?

这是Django Docs 中的一个例子:

from django.urls import include, path

urlpatterns = [
    path('index/', views.index, name='main-view'),
    path('bio/<username>/', views.bio, name='bio'),
    ...
]
Run Code Online (Sandbox Code Playgroud)
from django.urls import include, re_path

urlpatterns = [
    re_path(r'^index/$', views.index, name='index'),
    re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
    ...
]
Run Code Online (Sandbox Code Playgroud)

根据我的理解,path语法更具可读性,并提供了可以从 URL 捕获信息并转换类型的尖括号。

我应该re_path 在需要正则表达式时使用并path用于所有其他情况吗?

python django django-urls

9
推荐指数
2
解决办法
5900
查看次数