使用数据库功能组织Python webapp的项目文件

时间:2012-02-05 08:32:25

标签: python git virtualenv pyramid organization

我想了解如何为数据库驱动的Web应用程序组织文件。

该项目的主要组成部分是:

  • SQLite数据库
  • 使用Pyramid框架编写的Web应用程序,它从数据库中读取
  • 一组下载数据并将其添加到数据库的Python应用程序
  • 文档

我想使用git跟踪所有组件(包括文档)的所有源文件。

以下内容对项目来说是否是一个好的结构?

Main_Project_Directory
+-- virtualenv
|   +-- bin, lib, include, man
|   +-- PyramidApplication
|   |   +-- setup.py
|   |   +-- development.ini
|   |   +-- Application
|   |   |   +-- __init__.py
|   |   |   +-- ...
|   |   +-- ...
|   +-- DatabaseWritingApp1
|   |   +-- __init__.py
|   |   +-- ...
|   +-- DatabaseWritingApp2
|   |   +-- __init__.py
|   |   +-- ...
|   +-- database.sqlite
+-- documentation

我应该如何在这里初始化git存储库? 在顶级目录中有一个git存储库来跟踪金字塔应用程序,其他应用程序和文档会不会很好? 或者多个git存储库更可取?我是这个项目的唯一开发人员。

此外,virtualenv中是否有一些文件列出了所有已安装的软件包及其版本,以便可以从中重建bin,lib等目录? 如果是这样,将该文件包含在git存储库中是否可以,以便在拉出后可以轻松地重建virtualenv?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您不需要virtualenv目录中的所有项目。我喜欢将所有文件放在~/Workspace中以保持清洁。只需确保在运行金字塔应用程序之前运行. virtualenv_directory/bin/activate

我不知道您是否尝试使用您的代码进行模块化。换句话说,您打算在DatabaseWritingApp*之外使用PyramidApplication吗?如果是这样,我会做你正在做的事情并将它们分成不同的文件夹并为每个文件夹分配一个GitHub存储库,无论你有多少开发人员。另一方面,如果您不打算单独使用DatabaseWritingApp*,我会将所有内容归为PyramidApplication并使用一个GitHub存储库。

对于virtualenv的bin和lib,我所做的是确保我需要的所有库都在setup.py文件中,并在运行Pyramid应用程序之前运行python setup.py develop。这将确保您的virtualenv具有所有必需的库,假设它们都来自easy_install或pip。