Python 如何将django路径设置为http://127.0.0.1:8000/myproject/admin
这是我的myproject/url.pyPython 如何将django路径设置为http://127.0.0.1:8000/myproject/admin,python,django,Python,Django,这是我的myproject/url.py urlpatterns = [ url(r'^$', index, name='index'), url(r'^admin/', admin.site.urls), url(r'^myapp/', include('myapp.urls')) ] 当我运行python manage.py运行服务器127.0.0.1:8000时 工作正常 但是我想喜欢这个 所有URL甚至模板URL都应该以相同的模式重定向 在这里,我可以将
urlpatterns = [
url(r'^$', index, name='index'),
url(r'^admin/', admin.site.urls),
url(r'^myapp/', include('myapp.urls'))
]
当我运行python manage.py运行服务器127.0.0.1:8000时 工作正常 但是我想喜欢这个 所有URL甚至模板URL都应该以相同的模式重定向 在这里,我可以将路径/设置中的单个更改设置为使用/myproject/重定向以正常工作。以后我可以在一个地方使用/myproject/更改为/project2/ 实际上,我是在nginx上运行我的项目
server {
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
is works fine for http://127.0.0.8000/
but where i can set the name in one place like
location /myname/ {
...
}
so that my project will comes under http://127.0.0.8000/myname/myprojet
考虑到将来的更新,最好的方法可能是创建一个相对于
/myproject
路径的新的顶级URL文件,然后导入当前的URL文件。像这样:
urlpatterns = [
url(r'^myproject/', include('myproject.urls')
]
但是,由于您只想将myproject添加到所有url的开头,而无需自行决定,并且url匹配使用正则表达式,因此您可以执行以下操作:
urlpatterns = [
url(r'^myproject/$', index, name='index'),
url(r'^myproject/admin/', admin.site.urls),
url(r'^myprojet/myapp/', include('myapp.urls'))
]
另一种方法是将root映射到项目,将root映射到应用 像这样: 在项目
url.py
中:
urlpatterns = patterns('',
url(r'^myproject', include('myproject.urls')),
)
urlpatterns = patterns('',
url(r'^$', 'myapp.views.home', name='home'), # http://127.0.0.1:8000/myproject/myapp
url(r'^v1/$', 'myapp.views.v1', name='name_1'), # http://127.0.0.1:8000/myproject/myapp/name_1
url(r'^v2/$', 'myapp.views.v2', name='name_2'), # http://127.0.0.1:8000/myproject/myapp/name_2
url(r'^v3/$', 'myapp.views.v3', name='name_3'), # http://127.0.0.1:8000/myproject/myapp/name_3
)
如果您打算将新应用添加到项目中,您可以编辑
在myapp.url.py
中:
urlpatterns = patterns('',
url(r'^myproject', include('myproject.urls')),
)
urlpatterns = patterns('',
url(r'^$', 'myapp.views.home', name='home'), # http://127.0.0.1:8000/myproject/myapp
url(r'^v1/$', 'myapp.views.v1', name='name_1'), # http://127.0.0.1:8000/myproject/myapp/name_1
url(r'^v2/$', 'myapp.views.v2', name='name_2'), # http://127.0.0.1:8000/myproject/myapp/name_2
url(r'^v3/$', 'myapp.views.v3', name='name_3'), # http://127.0.0.1:8000/myproject/myapp/name_3
)
根据您的django文档,请参见语法:或
希望能有帮助 未解决,如果我们在模板中这样做/每个具有URL的HTML都需要提供myproject/myapp/defname的URL路径,如果我将myproject名称更改为project2,则需要到处替换myproject。但我只需要在一个地方/环境中更改它。