【问题标题】:Different urls to different apps in DjangoDjango中不同应用程序的不同网址
【发布时间】:2019-04-10 02:09:11
【问题描述】:

我的 Django 项目文件夹中有两个应用程序,我希望每个 urls.py 文件指向不同的域。例如:

我的第一个项目 urls.py 文件如下所示:

urlpatterns = [
path('register/', views.register, name='register'),
# path('login/', LoginView.as_view(template_name='Clientes/login.html'), name='login'),
path('login/', views.login_view, name='login'),
path('', views.login_view, name='login'),
path('mail/', views.mail, name='mail'),
path('profile/config', views.config_view, name="config"),
path('profile/dashboard', views.dashboard_view, name="dashboard"),
path('profile/terms', views.TermsView.as_view(), name="terms"),
path('profile/distribution', views.DistributionView.as_view(), name="distribution"),
# path('', LoginView.as_view(template_name='Clientes/login.html'), name='index'),
path('profile/order', views.OrderView.as_view(), name='order'),
path('profile/list/<pk>', views.detail_view, name='detail_view'),
path('profile/list/', views.ListOperationsView.as_view(), name='list_operations'),

path('reset-password/', PasswordResetView.as_view(), name="reset_password"),
path('reset-password/done/', PasswordResetDoneView.as_view(), name="password_reset_done"),
path('reset-password/confirm/', PasswordResetConfirmView.as_view(), name="password_reset_confirm"),

path('profile/logout/', views.logout_view, name='logout'),
path('profile/', views.ProfileView.as_view(), name='profile'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我希望该应用程序指向 example1.com。

我的第二个应用程序 urls.py 文件如下所示:

urlpatterns = [
path('atendimento/', views.DataView.as_view(), name='user_view'),
path('atendimento/opções', views.redirect_view, name='redirect_view'),
path('atendimento/rastreio', views.track_view, name='track_view'),
path('atendimento/trocas', views.change_view, name='change_view'),
path('atendimento/devolver', views.devolution_view, name='devolution_view'),
path('atendimento/contato', views.contact_view, name='contact_view'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT_ATENDIMENTO)

我希望这个应用程序指向 example2.com。

我该怎么做?

【问题讨论】:

  • 这些应用程序共享一个数据库吗?他们是否需要在同一个项目中?
  • 他们共享同一个数据库,并且需要在同一个项目中。
  • 你在 Heroku 中的路由如何?我从未使用过 Heroku,但在 Nginx 中,您可以通过设置位置块来通过反向代理将应用程序路由到您想要的位置来实现这一点。还是您真的希望解析后的 URL 有所不同?
  • 我添加了 app.scalestore.com.br 作为我的站点,我也可以使用其他域来访问同一个应用程序,但我需要的是去,例如 app.scalestore。 com.br 并显示一个应用程序,如果我去 store.scalestore.com.br 我会显示第二个应用程序。

标签: python django heroku


【解决方案1】:

根据您更确切的要求,您可以:

  1. 在您的 virtualHost 设置中的 Apache 级别重定向,
  2. 在您的模板中指定指向一个或另一个域的链接
  3. 在您的 view.py 中,指定指向另一个 URL 的重定向

    otherwise this might be useful

【讨论】:

  • 所以 Django 站点是关键?
  • 我没有关于你的项目的足够信息来确定你真正想要什么。例如,您是否希望每个域为同一个项目提供服务,但您希望项目的某些部分最好在一个域下提供服务?
  • 我刚刚在上面发表了评论,也许这可以澄清问题。
  • 所以我想是的,Django 站点是解决这个问题的方法。另一个(如果您不关心用户在地址栏中实际看到的内容,则更简单的是重定向另一个并直接在 url.py 中区分。不要忘记您可以为每个应用程序制作 url.py,然后将两者都包含在内url 可能通过在“app1/”和“app2”前面添加一个主要的 url.py)
猜你喜欢
  • 1970-01-01
  • 2016-12-23
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 2017-07-18
相关资源
最近更新 更多