在开始新项目之前,我正在寻找一些建议。
我正在使用Django 1.10创建Web应用程序。我有Django的经验,并创建基于内容的通用"有它的网站。但是,由于这个项目将成为一个基于网络的应用程序,我计划做更多的事情"复杂的"不只是渲染HTML模板和做一些基本的CRUD操作。当我说"复杂"事情,我现在可以提供的最具体的例子是利用更多的异步请求,这样我的网络应用程序就可以保持对用户的响应,并提供实时"可能安装在本地计算机上的应用程序附带的体验。此外,由于这是一个网络应用程序,而不仅仅是一个网站,该项目肯定会更多的数据驱动,这可能意味着要求以分页方式等最佳服务的大量数据。
所以,我虽然是这个.....因为我熟悉Django并且已经阅读了关于Django REST框架的这些好东西,所以我可以创建一个RESTful API来执行我的所有CRUD操作,并基本上与我的接口Web应用程序的核心数据库。
此时,我基本上可以有两个"层次" :( 1)将呈现我的网络应用程序页面的表示层和(2)将执行所有操作的应用程序层我的后端CRUD操作。由于这两者是分开的,我还可以获得额外的好处,即能够从其他途径(除了我的Django网络应用程序)利用API,如果这需要在路上。
我想我的第一个问题是这是否有意义,如果有的话,是关于实施它的最佳方法的想法。我相信我有两种选择。
创建一个Django项目并将API作为单独的应用程序包含在内。这似乎可以正常工作,但它会将我的API与我的演示文稿耦合,因为它们都将由同一台服务器托管。哪个...如果是唯一的"消费者" API是我的一个Django站点,那么这可能不是一个短期内的问题,但可能会在以后引起问题。
将两者分成两个不同的Django项目。我认为这提供了最大的灵活性,可能是最好的答案。
也可能有其他选择。在一天结束时,我正在寻找那些之前做过这些的建议/指导以及在开始这项工作之前我应该考虑的其他事项。