nik*_*328 1 django django-rest-framework
我正在尝试使用移动应用程序创建一个网站.我分别使用Web应用程序和REST apis,但是对于这个项目,我必须将两者结合起来.
我的问题是如何将这两个项目结合起来.
Suposse我有一个User有Tasks 的模型.目前我在一个应用程序中有这些模型,例如,myRESTapp.但是现在,我希望能够编辑任务并利用Django表单,但我不打算另外调用另一个应用程序webapp并根据模型实现表单myRESTapi.考虑到应用程序的模块化,我认为这不是一个好习惯.
您可以在一个Django项目中拥有多个应用程序.我通常有一个主应用程序,包含主要模型和基于它的其他应用程序.
此外,如果您想在不同项目中使用应用程序,只需将它们重复使用并将它们放入单独的存储库(您可以将其添加为需求并使用pip进行安装).
至于REST API,请查看优秀的Django Rest Framework.它提供完整的CRUD功能,结合脆弱的表单,您甚至可以使用简单的Web UI添加/修改数据.
我如何构建我的一个项目的示例:
base # basic application
??? __init__.py
??? admin
? ??? __init__.py
??? ??? filters.py # custom filters for the Django Admin
? ??? models.py # enhancements for the Django Admin
??? apps.py
??? db_router.py # database router to distinguish between default and legacy DB
??? migrations # DB migrations (default & legacy)
??? models
? ??? __init__.py
? ??? default.py # default models
? ??? legacy.py # legacy models
??? services
? ??? __init__.py
? ??? service1.py
? ??? service2.py
??? tests.py
manage.py
my_api_app
??? __init__.py
??? apps.py
??? serializers.py # DRF Serializers
??? services.py # specific services for this app
??? tests.py
??? urls.py # API URLs
??? views.py # DRF ViewSets
my_web_app
??? __init__.py
??? apps.py
??? services.py # specific services for this app
??? static
??? ??? css
??? ??? img
??? ??? js
??? templates
??? tests.py
??? urls.py # website URLs
??? views.py # web views
projectname
??? __init__.py
??? settings
??? ??? __init__.py
? ??? base.py # base settings for all environments
? ??? dev.py # local dev settings (DEBUG, etc)
? ??? prod.py # production settings (default)
? ??? test.py # test settings (sqlite DBs for testing)
??? urls.py # urlpatterns (API, website & admin)
??? wsgi.py
requirements
??? base.txt # requirements for all environments
??? dev.txt # local dev requirements
??? optional.txt # optional requirements for HTML doc creation
??? prod.txt # production requirements
??? test.txt # test env requirements
requirements.txt # default requirements (prod)
scripts
??? post-merge.sh # githook for deployment on server
??? doc.sh # create the code doc
??? coverage.sh # create the code doc
Run Code Online (Sandbox Code Playgroud)
所以我有我的基础应用程序,其中包含模型以及在其他应用程序和API应用程序以及网站应用程序中使用的所有内容.
我来自PHP和Symfony,我真的爱上了可重用服务的想法.这就是我如何保持逻辑不受我的观点影响并且更接近实际的MVC(Django不是这样)
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |