[英]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.