【问题标题】:how to set my django path to http://127.0.0.1:8000/myproject/admin如何将我的 django 路径设置为 http://127.0.0.1:8000/myproject/admin
【发布时间】:2019-06-04 08:37:03
【问题描述】:

这是我的 myproject/urls.py

urlpatterns = [
    url(r'^$', index, name='index'),
    url(r'^admin/', admin.site.urls),
    url(r'^myapp/', include('myapp.urls'))
]

当我运行 python manage.py runserver 127.0.0.1:8000 它工作正常 http://127.0.0.1:8000 http://127.0.0.1:8000/admin http://127.0.0.1:8000/myapp

但我想喜欢这个

http://127.0.0.1:8000/myproject http://127.0.0.1:8000/myproject/admin http://127.0.0.1:8000/myproject/myapp

所有 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

【问题讨论】:

    标签: python django


    【解决方案1】:

    考虑到未来的更新,最好的方法可能是创建一个相对于/myproject 路径的新顶级 urls 文件,然后导入您当前的 urls 文件。像这样:

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

    【讨论】:

    • 未解决,如果我们在模板中这样做/每个具有 URL 的 HTML 都需要提供来自 myproject/myapp/defname 的 URL 路径,如果我将 myproject 名称更改为 project2,那么我需要在任何地方替换 myproject。但我只需要在一个地方/设置中更改它。
    【解决方案2】:

    另一种方法是将 root 映射到您的项目并将 root 映射到您的应用程序。

    像这样:

    项目中urls.py

    urlpatterns = patterns('',
        url(r'^myproject', include('myproject.urls')), 
    )
    

    如果您打算将新应用添加到您的项目中,您可以编辑 在myapp.urls.py

    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 文档,请参阅语法:django docs older 2.0django 2.1 docs

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-22
      • 2018-04-17
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 2021-11-13
      相关资源
      最近更新 更多