我正在使用本地Windows 7计算机上的Bitnami DjangoStack(包括django,apache和mySQL)构建django网站的过程。
该项目称为“ MyProject”。目前,我的网址看起来像:localhost / MyProject / localhost / MyProject / login / localhost / MyProject / admin /等。每当我使用HttpResponseRedirect('/ login /')重定向时(我一直在观看的教程表明我应该这样做)我最终无法使用“ localhost / login”,因此为了纠正这一点,我一直在使用HttpResponseRedirect('/ MyProject / login /')来代替,它确实可以正常工作。
我希望完成的项目位于“ http://www.MyProject.com ”上,并具有类似www.MyProject.com/login的页面,但是我似乎对其进行配置的方式将以“ www.SomeDomain”结尾.com / MyProject / login”。HttpResponseRedirect('/ MyProject / login /')是否对我要执行的操作有效,还是应该将settings.py配置为其他内容?非常感谢。
首先,您不应该在Django代码中硬编码url字符串(既不是模板也不是视图),而应使用Django URL Dispatcher
urls.py
urlpatterns = patterns('',
#...
url(r'^articles/(\d{4})/$', 'news.views.year_archive'),
#...
)
views.py
return HttpResponseRedirect(reverse('news.views.year_archive', args=(year,)))
为了解决您的问题,您的主要urls.py可以将您的其他项目url打包为如下所示,它将在SITE_BASE_URL之前添加到我们所有包含的项目url中。
SITE_BASE_URL = '/MyProject/'
urlpatterns = patterns('',
# ... snip ...
url(r'{site_base}'.format(site_base=SITE_BASE_URL), include('project.urls')),
# ... snip ...
)
现在,您只需使“ SITE_BASE_URL”环境特定即可。您可以使用设置文件(在生产环境或本地环境中可以保持不同),也可以将其作为环境变量从Apache本身传递,请参阅:http : //drumcoder.co.uk/blog/2010/nov/12/apache-environment- variables-and-mod_wsgi /。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句