[英]Confused with /app_name/page or app_name/page
我很困惑是否應該以/
開頭的路徑開始? 例如,這是我在django中的views.py
中的一種方法:
@login_required
def add_page(request,category_name_slug=None):
# check for post method
print category_name_slug
try:
cat = Category.objects.get(slug = category_name_slug)
except Exception, e:
cat = None
if request.method == 'POST':
print "sjhdfkjsdhkfhjs"
# means you submitted the form.
form = PageForm(request.POST)
a = form.is_valid()
if a:
if cat:
page = form.save(commit = False)
page.category = cat
page.views = 0
page.save()
print "sdjhfjshk"
return HttpResponseRedirect('/rango/category/' + category_name_slug + '/')
else:
print form.errors
else:
form = PageForm()
context_dict = {'form' : form,'category' : cat, 'slug': category_name_slug}
return render(request,'rango/add_page.html', context_dict)
在渲染行中
返回render(request,'rango / add_page.html',context_dict)
該行不是以/
開頭。 但是,在以下情況下:
返回HttpResponseRedirect('/ rango / category /'+ category_name_slug +'/')
我必須從/
開始。 請解釋我什么時候應該使用“ /”,什么時候不使用。
在django中使用render
函數時,第二個參數是模板名稱。
您在此處指定的字符串將相對於您在settings.py中定義的TEMPLATES
設置使用。 它告訴django模板文件在哪里。 這就是為什么不在render()
以'/'開頭模板名稱的原因
而HttpResponseRedirect
直接要求URL進行重定向。 由您決定是否應在字符串前面添加“ /”。
當提供的URL以“ /”開頭時,無論您從何處重定向,都將把用戶帶到相對於網站根目錄的確切路徑。
例如,如果用戶位於http://127.0.0.1:8000/some/other/page/,並且您使用以下命令重定向用戶:
返回HttpResponseRedirect('/ dashboard /')
用戶將被重定向到http://127.0.0.1:8000/dashboard/
如果URL並非以“ /”開頭,則該URL只是附加到用戶正在訪問的URL上。 在這種情況下:
返回HttpResponseRedirect('dashboard /')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.