[英]django: passing a url as a parameter
我想将一个URL从javascript传递到django视图。 我有以下urls.py
--- urls.py ---
url(r'^show/(?P<url>\.+)$', 'myapp.views.jsonProcess'),
该视图具有以下声明:
--- views.py ---
def jsonProcess(request, url):
我在javascript中传递的URL如下:
url = 'http://127.0.0.1:8000/show/' + 'http://www.google.com';
window.open(url);
匹配URL时出现“找不到页面(404)”错误。 我错过了什么? 任何,所有指针都是受欢迎的,因为我无可救药地卡住了! :(
首先,如果您希望它表示任何符号(在urls.py
),则无需转义点。
url(r'^show/(?P<url>.+)$', 'myapp.views.json_process')
其次,使用encodeURIComponent
来正确转义参数。
var url = 'http://127.0.0.1:8000/show/' +
encodeURIComponent('http://www.google.com')
顺便说一句,不要在Python中使用mixedCase作为函数名 :
函数名称应为小写,并根据需要用下划线分隔,以提高可读性。
另一个可能在将来有用的注意事项:不要在JavaScript中硬编码Django URL。 您可以在视图中动态生成它们:
from django.core.urlresolvers import reverse
url = reverse(
'myapp.views.json_process',
kwargs={'url': 'http://www.google.com'}
)
或者在模板中 :
{% url myapp.views.json_process url="http://www.google.com" %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.