gpt4 book ai didi

javascript - django:将 url 作为参数传递

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:53:08 25 4
gpt4 key购买 nike

我想将 URL 从 javascript 传递到 django View 。我有以下 urls.py

     --- urls.py ---
url(r'^show/(?P<url>\.+)$', 'myapp.views.jsonProcess'),

View 有如下声明:

    --- 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')

顺便说一句,不要使用mixedCase for function names在 Python 中:

Function names should be lowercase, with words separated by underscores as necessary to improve readability.


另一个可能对 future 有帮助的注意事项:不要在 JavaScript 中硬编码 Django URL。您可以动态生成它们 in your views :

from django.core.urlresolvers import reverse
url = reverse(
'myapp.views.json_process',
kwargs={'url': 'http://www.google.com'}
)

in templates :

{% url myapp.views.json_process url="http://www.google.com" %}

关于javascript - django:将 url 作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7963005/

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