我正在寻找一些建议,然后才开始新项目。Django Web应用程序设计指南
我正在使用Django 1.10创建一个Web应用程序。我有与Django的经验,并创建一般的“基于内容”的网站。然而,由于这个项目将成为一个基于网络的应用程序,因此我打算做更复杂的事情,而不仅仅是渲染HTML模板并进行一些基本的CRUD操作。当我说“复杂”的事情时,我现在可以提供的最具体的例子是利用更多的异步请求,以便我的Web应用程序可以保持对用户的响应,并提供应用程序附带的“实时”体验可能会安装在他们的本地机器或其他什么。此外,由于这是一个网络应用程序,而不仅仅是一个网站,该项目肯定会更多的数据驱动,这可能意味着要求大量的数据,以分页的方式提供最佳服务等。
所以,我虽然是这个.....因为我熟悉Django并阅读了有关Django REST框架的好东西,所以我可以创建一个RESTful API来执行我所有的CRUD操作,并基本上与我的Web应用的核心数据库。在这一点上,我基本上可以有两个“层”:(1)表示层,它将呈现我的Web应用程序的页面;(2)一个应用程序层,它将完成我所有的后端CRUD操作。由于这两者是分开的,如果有必要,我还可以从其他渠道(除了我的Django网络应用程序)利用API获得额外的好处。
我想我的第一个问题是这是否有意义,如果是的话,思考最好的方式来实现它。我相信我有两个选择。
创建一个Django项目并将API作为单独的应用程序包含。这似乎可以正常工作,但它会将我的API与我的演示文稿结合起来,因为它们都由同一台服务器托管。哪个...如果API的唯一“消费者”是我的一个Django站点,那么这可能不是近期的问题,但可能会在稍后导致问题。
将两者分为两个不同的Django项目。这提供了最大的灵活性,可能是最好的答案,我想。
也可以使用其他选项。在这一天结束时,我正在寻找来自那些曾经做过这些事情的人的建议/指导,以及在开始这项工作之前我应该考虑的其他事情。
我会建议制作一个Django REST框架来构建一个API,并用ReactJS或Angular做类似的前端。如果你需要有websockets,那么你可以添加Django-Channels。前端可能是静态文件和单独的项目。 –