【发布时间】:2010-09-26 17:08:04
【问题描述】:
对这个场景很陌生,并试图找到一些文档以采用最佳实践。我们正在构建一个相当大的内容站点,其中将包含各种媒体目录,我正在尝试找到一些可比较的数据/架构模型,以便我们可以更好地了解我们应该使用我们从未使用过的框架使用的方法以前用过。任何见解/帮助将不胜感激!
【问题讨论】:
标签: python django django-models django-templates
对这个场景很陌生,并试图找到一些文档以采用最佳实践。我们正在构建一个相当大的内容站点,其中将包含各种媒体目录,我正在尝试找到一些可比较的数据/架构模型,以便我们可以更好地了解我们应该使用我们从未使用过的框架使用的方法以前用过。任何见解/帮助将不胜感激!
【问题讨论】:
标签: python django django-models django-templates
“数据/架构模型,以便我们可以更好地了解我们应该使用以前从未使用过的框架使用的方法”
Django 将最佳实践强加给您。你没有太多选择,也不会犯很多错误。
MVC(虽然是崇高的愿望)实现如下:
模型是为您定义的。只要坚持 Django 自然做的事情,你就会快乐。
在架构上,您通常有这样的堆栈。
Apache 做了两件事。
Django 视图函数使用的数据库。
架构已为您明确定义。只要坚持 Django 自然做的事情,你就会快乐。
欢迎阅读Django documentation。太棒了;也许是最好的。
【讨论】:
首先,忘记所有 MVC 口头禅。拥有一个良好的分层结构很重要,但 MVC(如最初定义的)不是一个,它是一个 模块化 结构,其中每个 GUI 模块在这些树中拆分子模块。这里没有什么可以在网络上使用的。
在 Web 开发中,分层结构确实很划算,其中最重要的层是存储/建模层,后来被称为 模型层。除此之外,您还需要一些其他层,但它们实际上与 GUI 世界中的视图和控制器不同。
Django 层大致如下:
【讨论】:
要了解 django 基础知识和 django 对 MVC 的看法,请参阅以下内容: http://www.djangobook.com/
作为一个开始,让你的手弄脏...... “...试图找到一些可比较的数据/架构模型”
这是一种对数据库进行逆向工程以获取 models.py 文件的快速而肮脏的方法, 然后您可以检查以查看 django 将如何处理它。
1.) 获得与您的目标非常匹配的 er 图。例如像这样 http://www.databaseanswers.org/data_models/product_catalogs/index.htm
2.) 从 er 图创建一个 sql 脚本并创建数据库, 我建议 Postgre,作为一些 MySQL 表类型不会有伪造的键约束,但在紧要关头 MySQL 或 SQLITE 会做的
3.) 创建并配置一个 django 应用程序以使用该数据库。然后运行: python manage.py inspectdb
这至少会给你一个 models.py 文件,你可以阅读它来看看 django 是如何尝试的 对其进行建模。
请注意,inspect 命令旨在成为处理遗留问题的快捷方式 在 django 中开发时的数据库,因此并不完美。请务必阅读 在尝试此操作之前先执行以下操作: http://docs.djangoproject.com/en/dev/ref/django-admin/#ref-django-admin
【讨论】: