我正在尝试使用移动应用程序创建一个网站。我分别使用网络应用程序和REST apis,但是在这个项目中,我必须将两者结合起来。
我的问题是如何将这两个项目结合起来。
Suposse我的x %>% group_by(concat) %>% summarize(id = paste(id, collapse = ";"),
super = unique(super), category = unique(category), root = unique(root),
coldefs = paste(coldefs, collapse = ";"))
模型有User
个。目前我在应用程序中有这些模型,例如,Task
。但是现在,我希望能够编辑任务并利用Django表单,但我不是要做另一个名为myRESTapp
的应用程序,而是根据webapp
中的模型实现表单。考虑到应用程序的模块化,我认为这不是一个好习惯。
答案 0 :(得分:5)
您可以在一个Django项目中拥有多个应用。我通常有一个主应用程序,其中包含主要模型和基于它的其他应用程序。
此外,如果您想在不同的项目中使用应用程序,只需将它们reusable并将它们放入单独的存储库(您可以将其添加为需求并使用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
所以我有我的基础应用程序,其中包含模型以及在其他应用程序和API应用程序以及网站应用程序中使用的所有内容。
我来自PHP和Symfony,我真的爱上了可重用服务的想法。这就是我如何将逻辑从我的观点中移开并更接近实际的MVC(这是Django不是什么)