Django Web应用程序设计指南
在开始一个新项目之前,我正在寻求一些建议 我正在使用Django 1.10创建一个Web应用程序。我有使用Django和使用它创建通用“基于内容”网站的经验。然而,由于这个项目将是一个基于web的应用程序,我计划做更多“复杂”的事情,而不仅仅是呈现HTML模板和执行一些基本的CRUD操作。当我说“复杂”的事情时,此时我能给出的最具体的例子是利用更多的异步请求,这样我的web应用程序就可以对用户保持响应,并提供可能安装在本地机器上的应用程序所带来的“实时”体验。此外,由于这是一个web应用程序,而不仅仅是一个网站,因此该项目肯定会更加数据驱动,这可能意味着需要大量数据,这些数据最好以分页方式提供,等等 因此,我的想法是……因为我熟悉Django,并且读过关于Django REST框架的很多好东西,所以我可以创建一个RESTful API来执行所有CRUD操作,并基本上与web应用程序的核心数据库进行接口 在这一点上,我基本上可以有两个“层”:(1)一个表示层,它将呈现我的web应用程序的页面;(2)一个应用层,它将执行我的所有后端CRUD操作。由于两者是分开的,如果将来需要的话,我还可以从其他渠道(除了我的Django web应用程序)利用API,从而获得额外的好处 我想我的第一个问题是,这是否有意义,如果是的话,思考一下实现它的最佳方式。我相信我有两个选择Django Web应用程序设计指南,django,django-rest-framework,Django,Django Rest Framework,在开始一个新项目之前,我正在寻求一些建议 我正在使用Django 1.10创建一个Web应用程序。我有使用Django和使用它创建通用“基于内容”网站的经验。然而,由于这个项目将是一个基于web的应用程序,我计划做更多“复杂”的事情,而不仅仅是呈现HTML模板和执行一些基本的CRUD操作。当我说“复杂”的事情时,此时我能给出的最具体的例子是利用更多的异步请求,这样我的web应用程序就可以对用户保持响应,并提供可能安装在本地机器上的应用程序所带来的“实时”体验。此外,由于这是一个web应用程序,而
可能还有其他选择。在这一天结束的时候,我正在寻找那些以前做过这些事情的人的建议/指导,以及在开始这项工作之前我应该考虑的其他事情。p> 基本上我不推荐第二条路。这是因为你真的很快就会开始与这样的问题斗争:在哪里存储模型?项目A和项目B都是??另外,我几乎可以肯定,您将有其他代码可以在两个django项目之间共享
值得注意的是,在两个单独的Django项目中,您会遇到迁移的同步问题(只考虑两个项目中模型的同步改变)。就我个人而言,我从来没有能够以一种好的、可以接受的方式解决这个问题
也许我会和你分享我的个人经历-希望这会有所帮助rest
应用程序,并使用其他地方定义的所有模型-它将为您提供简单的现成CRUD,通过一些工作,它将非常强大。如果您能够在现代js框架中创建前端,那么剩余的部分也可以用于向前端提供数据。还有你能想象到的任何其他客户。这基本上将需要在后端完成的工作量(仅REST而不是REST+模板和渲染)转移到前端魔术开始吧
myapp.com->指向前端
<代码>api.myapp.com->指向api
您应该在代码中明确区分这两者。在前端基于js的情况下-这不是问题,但是rest+渲染非常重要,能够运行仅api节点
和仅渲染节点
。很难说哪一个会被更多地使用
所以基本上你可以这样结束:
core
models
users.py
my_app_frontend
users
views.py
forms.py
tasks.py
urls.py
my_app_rest
users
serializers.py
views.py
signals.py
urls.py
my_app
settings.py
rest_settings.py
manage.py
wsgi.py
rest_wsgi.py
urls.py
rest_urls.py
这有一些我喜欢的优点:
节点
整体运行dev server
。从前面和后面梳理设置快乐编码 基本上我不推荐第二条路。这是因为你真的很快就会开始与这样的问题斗争:在哪里存储模型?项目A和项目B都是??另外,我几乎可以肯定,您将有其他代码可以在两个django项目之间共享
值得注意的是,在两个单独的Django项目中,您会遇到迁移的同步问题(只考虑模型的同时改变)。