我知道一个网站可以有很多应用程序,但我看到的所有示例都有一个名为"mysite"的网站.我认为该网站将是您网站的名称,例如StackOverflow.
你会这样做,然后有"身份验证","问题"和"搜索"等应用程序吗?或者你真的只有一个名为mysite的网站,有一个名为StackOverflow的应用程序?
Jar*_*die 25
Django实际上有3个概念:
项目(我认为这就是你所谓的网站):这是包含所有应用程序的目录.它们共享一个公共运行时调用,可以相互引用.
应用程序:这是一组视图,模型和模板.应用程序通常设计为可以插入另一个项目.
站点:您可以根据所访问的站点(即:URL)为应用指定不同的行为.这样,相同的"应用程序"可以根据用户是否访问过"StackOverflow.com"或"RackOverflow.com"(或任何以IT为目标的版本将被调用)来自定义,即使它是相同的代码库那是在处理请求.
你如何安排这些取决于你的项目.在复杂的情况下,您可能会这样做:
Project: StackOverflowProject
App: Web Version
Site: StackOverflow.com
Site: RackOverflow.com
App: XML API Version
Site: StackOverflow.com
Site: RackOverflow.com
Common non-app settings, libraries, auth, etc
Run Code Online (Sandbox Code Playgroud)
或者,对于想要利用开源插件的更简单的项目:
Project: StackOverflowProject
App: Stackoverflow
(No specific use of the sites feature... it's just one site)
App: Plug-in TinyMCE editor with image upload
(No specific use of the sites feature)
Run Code Online (Sandbox Code Playgroud)
除了需要一个项目和至少一个应用程序的事实,这种安排非常灵活; 但是,您可以适应最适合帮助抽象和管理部署的复杂性(或简单性).
从Django文档:
项目与应用
项目和应用程序之间有什么区别?应用程序是执行某些操作的Web应用程序 - 例如,Weblog系统,公共记录数据库或简单的轮询应用程序.项目是特定网站的配置和应用程序的集合.项目可以包含多个应用程序.一个应用程序可以在多个项目中.
从这个链接:
项目与应用
这实际上更像是一个单独的(虽然是相关的)问题,但理解Django在"项目"和"应用程序"之间的区别是良好代码布局的重要组成部分.粗略地说,这就是两个术语的含义:
应用程序尝试提供一组相对独立的相关函数.允许应用程序定义一组模型(虽然它不必),并定义和注册自定义模板标签和过滤器(但同样,它不必).
项目是应用程序的集合,安装在同一个数据库中,并且都使用相同的设置文件.从某种意义上说,项目的定义方面是它提供了一个设置文件,该文件指定要使用的数据库,要安装的应用程序以及其他配置位.项目可能对应于单个网站,但不必 - 多个项目可以在同一站点上运行.该项目还负责根URL配置,但在大多数情况下,仅包含调用以包含来自个人应用程序的哪些拉入URL配置是有用的.
视图,自定义操纵器,自定义上下文处理器以及Django允许您创建的大多数其他内容都可以在项目级别或应用程序级别定义,并且您应该在哪里进行定义,这取决于对您最有效的内容; 但总的来说,它们最适合放在应用程序中(这增加了它们在项目中的可移植性).
| 归档时间: |
|
| 查看次数: |
4012 次 |
| 最近记录: |