Django - 在不同的uwsgi实例上分离应用程序 - 在它们之间共享代码

时间:2015-02-13 21:09:55

标签: django nginx django-models django-rest-framework uwsgi

我使用django-rest-framework创建了一个ReST API,我的移动应用程序与之交互。

我现在想要创建一个不使用API​​(使用基于类的视图和模型序列化器)的前端Web应用程序,而是利用django模板来提供内容。

我正在使用带有uwsgi的nginx来运行并向用户提供我的应用程序。

为了最大限度地减少服务器上的负载流量,我希望API和Web应用程序在单独的uwsgi进程上运行。我也想为各自的应用程序提供不同的基本URL(例如api.projectdomain.com / web.projectdomain.com)

但是,我也希望在SAME django项目中同时拥有api和web-app,以便他们同时访问相同的模型类和管理工具。

这是可以实现的吗?如果是,我从哪里开始?

如果没有,为了实现我需要的代码共享/ URL识别,您还有什么建议我做的?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先要做的事情是:在你的应用程序中使用django REST并不会强迫你使用它的序列化程序和视图,你可以将它与普通的django视图和REST api视图混合使用。

是的,您可以从一个项目中提供2个单独的Web应用程序(不是django应用程序)。当您使用默认模板创建新项目时,django将为您创建一个服务(我称之为他们)app,其中包含项目名称。您可以在同一个项目中创建另一个,在设置中添加相同的应用程序,将其配置为使用与主数据库相同的数据库,使用不同的urlpatterns(和视图)并在另一个uwsgi进程(或进程组)上提供。只有一个manage.py只会出现问题,但如果您的两个服务应用都使用相同的数据库和相同的模型,则只有网址和视图不同,您可以同时管理这两个应用,只使用一个{{1}对他们来说。

或者你可以创建单独的设置和wsgi文件,但是在一个服务app文件夹中。这完全取决于你如何安排它。