Newbie Django:创建一个包含多个应用程序或所有应用程序的项目

2024-05-15 00:04:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django世界的乞丐,我开发了一些“信息网站”(没什么复杂的),但这周我的老板命令我迁移一个有7个模块的大型软件。

所以我阅读了文档页面并在google中搜索如何使用Django设计这个软件。我知道每个“模块”都可以命名为“应用程序”,所以我为每个模块创建了一个新项目和一个应用程序(我不知道这是否正确,因为模块不会公开)。

问题是现在我不知道下一步该怎么做。

我的所有应用程序都可以共享数据(每个应用程序都有自己的模型,但有时一个应用程序的模型与其他应用程序中的模型相关)?

我应该在哪里编写登录过程的代码(我创建了一个manageUsers应用程序,它被认为可以处理当前或新用户的注册、编辑、共享和验证配置文件),并且我们可以跨应用程序共享此会话数据?

我需要一个更多的应用程序,把网站信息(如联系,关于,定价…)?我使用Python 2.7、Django 1.3、Memcached和Mysql 5。

如果有人能帮助我或者告诉我哪里可以澄清这些问题,因为大多数人只解释了如何使用一个应用程序开发,而在IRC中没有得到回复,否则我必须在一个应用程序中编写所有代码?

致意


Tags: 模块数据django代码文档模型命令信息
2条回答

对我来说,规则很简单。

  1. 如果你需要从一个项目复制粘贴一些代码到另一个项目-为它制作一个应用程序
  2. 如果应用程序的某个模块代码大于1k行和/或难以维护-请在单独的应用程序中查找要移动的内容
  3. 将功能分组到应用程序中,以最小化它们之间的交叉链接

对于互连,可以使用signalssessions

一个很好的开始(日期,但值得一读;也看看用户评论气泡):http://www.djangobook.com/en/2.0/。第1-10章是必要的阅读。如果需要,您可以选择阅读其余章节。

是的,所有Django应用程序都可以彼此共享数据。您可以创建多个Django应用程序,它们位于单个Django项目下。该项目建立了一个通用数据库,每个应用程序都创建了使用该数据库的模型。App1可以与App2对话,反之亦然。

Django Project (one)  <----->>  (many) Django Application

通常,你会根据公共功能来分离应用程序。用户帐户获得自己的应用程序(请参见下面的验证)。博客文章会得到另一个。谷歌地图界面将得到另一个。用户订阅,另一个。

对于用户帐户和登录,Django提供Auth Module。您可以将用户帐户直接存储在Django中,或者将其配置为与其他内容(如Active Directory)通信。Auth在开箱即用的情况下工作得“非常好”,不过我个人定制了一点,允许255个字符的电子邮件地址作为用户名(默认情况下,它限制为40个字符)。Chapter 14在Django的书中可能比官方的Auth文档更容易阅读。如果您使用Auth,就不必制作自己的Django应用程序,因为Auth已经是一个应用程序了!你只要在settings.py中安装它,你就是金的。

你的Django结构可能看起来像这样:

/Project/
  __init__.py
  manage.py
  settings.py
  urls.py

  App1/
    __init__.py
    forms.py
    models.py
    views.py
    templates/App1/
      template1.html
      template2.html

  App2/
    ...

App2可以通过执行以下操作来访问App1的数据模型:from Project.App1.models import someModel

相关问题 更多 >

    热门问题