Python 使用django的多个应用程序
我正在研究Django框架,阅读文档,但没有找到关于如何在同一个项目上创建多个应用程序的参考资料,其中每个应用程序都有多个应用程序。例如,应用程序博客,包含应用程序用户、评论、帖子等,以及应用程序客户端、用户、附件的实现和任务。。。我该怎么办Python 使用django的多个应用程序,python,django,frameworks,Python,Django,Frameworks,我正在研究Django框架,阅读文档,但没有找到关于如何在同一个项目上创建多个应用程序的参考资料,其中每个应用程序都有多个应用程序。例如,应用程序博客,包含应用程序用户、评论、帖子等,以及应用程序客户端、用户、附件的实现和任务。。。我该怎么办 localhost localhost/blog/ (posts, user, comment, ...) localhost/tasks/ (task, user, attachment, ...) <my project> -- mana
localhost
localhost/blog/ (posts, user, comment, ...)
localhost/tasks/ (task, user, attachment, ...)
<my project>
-- manage.py
-- <project name>
-- -- blog
-- -- -- posts
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py
...
-- -- tasks
-- -- -- attachments
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py
...
localhost
本地主机/博客/(帖子、用户、评论等)
本地主机/任务/(任务、用户、附件等)
--manage.py
--
----博客
----职位
---->views.py
---->url.py
---->models.py
...
----任务
----附件
---->views.py
---->url.py
---->models.py
...
你对什么是应用感到困惑。应用程序只是相关功能的集合,通常(但不一定)包括模型、视图和模板
“用户”不是一个应用程序-它是一个模型,但您通常会使用内置的django.contrib.auth应用程序来提供用户功能。任何应用程序都可以使用任何其他应用程序的代码,包括模型。在一个应用程序中,您可以拥有任意多个型号。关于django,您应该了解的事情:
views.py
、models.py
和\uuuuu init\uuuu.py
);你可以拥有任意数量的应用程序。您还可以使用URL访问不到的应用程序-它们只是用于支持其他应用程序;您的应用程序也不必与URL具有相同的名称www
,并在其视图.py
中定义这些非常有创意的命名方法:
def blog(request):
pass
def tasks(request):
pass
现在,在您的url.py
中,您可以拥有:
url(r'^blog/$','www.views.blog',name='blog-index'),
url(r'^blog/posts/$','www.views.blog',name='blog-posts',kwargs={'view_posts': True}),
url(r'^tasks/$','www.views.tasks',name='task-index'),
url(r'^tasks/attachments/$','www.views.tasks',name='task-attachments'),
每个应用程序的文件夹中将包含以下内容:
- views.py
- models.py
- 其他选项(admin.py…)
Project
-- manage.py
-- Project
-- -- views.py
-- -- models.py
-- -- others
-- -- APP1
-- -- -- views.py
-- -- -- models.py
-- -- -- others
-- -- APP2
-- -- -- views.py
-- -- -- models.py
-- -- -- others
-- -- APPX
-- -- -- views.py
-- -- -- models.py
-- -- -- others
该实用程序是功能之间的区别(如果您有通知应用程序和通知模型,请调用Notification.models.Notification)
模型是对象的体系结构。因此,您将调用例如User.username或Task.name。Django在数据库中自动创建表
Django的另一个工具:您可以使用管理视图(它可以编辑、创建、编辑使用您的模型的对象)或更改此界面(外观)
如果你想你可以做一个识别系统,并创建表单,你可以使用自己的管理系统
以你的例子:
<my project>
-- manage.py
-- <project name>
-- -- urls.py
-- -- models.py <--- User model exists in Django and here you can add informations to the defaut model it is in this file because I suppose it will be used in all your project.
-- -- views.py
-- -- blog <--- It's an app.
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py <--- Posts, Comments are models for the blog, so you explain them here.
-- -- tasks <--- Another app.
-- -- -- attachments
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py <--- Task model for exemple
--manage.py
--
----url.py
----models.py如果我需要使我的站点具有管理界面,而不使用contrib.admin,该怎么办。如何区分逻辑?“此视图是管理界面,这是公共界面”?如果需要。或者将其拆分为两个视图文件-视图只是Python函数,它们可以存在于任何地方。或者为所有其他应用程序的所有管理功能提供一个单独的应用程序。由你决定。祝你好运!两周前我还在你的案子里,现在我觉得django用了一种不可思议的语言!!我开始用ZigBee NETWORKE在家庭自动化大学学习这个项目,我的应用程序是APP1和APP2。现在,当我请求APP2中的Apple页面时,它仍然呈现App1的页面。对于第一个app1,我将其作为urlpattern/project/app1/显示,对于第二个app,我将/project/app2/about.html——从第一个app显示。如果有用户可以发布或创建任务,则将用户模型放在哪里-在blog或tasks app中?或者,如果您建议创建另一个应用程序(用户),那么应该如何定义用户post/用户任务关系?将Django与PHP进行比较是不正确的。Django是python之上的一个框架。PHP可以与python或Jinja模板语言相比较,但不能与Django相比较。非常清晰的答案!谢谢