gpt4 book ai didi

python - 允许 url 作为参数

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:47 27 4
gpt4 key购买 nike

我想将 URL 保存在我的数据库中,为此我实现了以下调用:

http://myapp.com/save/url_to_be_saved

参数url_to_be_saved可以是任意URL,如:

http://myapp.com/save/http://stackoverflow.com/questions/ask
http://myapp.com/save/http://getbootstrap.com/css/#forms

如何让 Django 接受这些模式?我当前的 myapp.urls 如下:

urlpatterns = patterns(
'',
url(r'^$', views.index, name='index'),
url(r'^a/signup/$', views.signup, name='signup'),
url(r'^a/login/$', views.login, name='login'),
url(r'^a/logout/$', views.logout, name='logout'),
url(r'^a/search/(?P<term>.{1,50})/$', views.search, name='search'),
url(r'^save/(?P<url>([^a/]){1,50})/$', views.save_url, name='save_url'),
)

最佳答案

我会允许在 url 中传递任何内容,然后我会 validate the url在 View 中:

url(r'^save/(?P<url>.*)/$', views.save_url, name='save_url'),

然后, View 需要验证 url:

from django.core.validators import URLValidator
from django.core.exceptions import ValidationError

def save_url(request, url):
url_validator = URLValidator(verify_exists=False)
try:
url_validator(url)
except ValidationError:
print 'Not a valid URL'

您可能还需要 unquote验证之前的 url。

关于python - 允许 url 作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283765/

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