代码之家  ›  专栏  ›  技术社区  ›  Ayman

python数据库/sql编程-从哪里开始

  •  7
  • Ayman  · 技术社区  · 17 年前

    1. 应该占用空间小。我每张表只需要几千条记录。每个数据库只有几个表。
    2. 如果它是Python默认安装提供的,那就太好了。必须是开源的,在Windows和Linus上可用。
    3. 大部分将通过代码使用,但如果有一个GUI前端,那就太好了
    4. 只需要几页就可以开始了。我不想在页面上阅读表是什么以及Select语句是如何工作的。这些我都知道。
    5. 最好支持Python 3,但2.x也可以。

    更新
    我所说的用例相当简单。一个你可能会在一两天内完成。
    这是一个100多行的Python脚本,它收集了大量文件(比如10k)的数据,并创建了关于这些文件的元数据文件,然后创建了一个关于整个文件树的大型元数据文件。我只需要避免重新处理已经处理的文件,并为更新的文件创建元数据,并更新主元数据文件。在某种程度上,缓存处理后的数据,只在文件更新时更新它。 如果缓存已损坏/不可用,则只需处理整个树。这可能需要20分钟,但没关系。

    我想避免任何外部依赖,这样脚本就可以很容易地放在任何只安装Python的系统上。作为Windows,有时很难安装所有组件。

    你可能不会启动Office Word/Writer来写一个小的便利贴,同样,我也不愿意在这个用例中使用Django这样的东西。

    9 回复  |  直到 17 年前
        1
  •  6
  •   steveha    17 年前

    我强烈建议使用一个好的ORM。当你可以使用Python对象来管理数据库行时,生活会变得容易得多。

    这让我只能推荐一个ORM: Autumn 非常轻量级,与SQLite配合使用非常好。如果你的嵌入式应用程序是多线程的,那么你绝对想要秋天;它具有支持多线程SQLite的扩展。(完全披露:我写了这些扩展并贡献了它们。我在为RealNetworks工作时写的,我的老板允许我捐赠它们,所以公开感谢RealNetworks。)

    我不推荐APSW。依我拙见,这对你帮助不大;它只是提供了一种执行SQL语句的方法,让你掌握SQL的做事方式。此外,它支持SQLite的每一个功能,即使是你很少使用的功能,因此它实际上比秋天有更大的内存占用,但使用起来并不那么容易。

        2
  •  3
  •   hatmatrix    17 年前

    我从这里开始:

    http://www.devshed.com/c/a/Python/Using-SQLite-in-Python

    这是5页(很短),只包含了一些要点,让我立刻开始了。

        3
  •  3
  •   Kevin    17 年前

    你要找的是 SQLAlchemy ,它正迅速成为事实上的标准Python数据访问层。为了使您首次体验SQLAlchemy更加容易,请查看 Elixir

    更新 :重新阅读问题,看到了不需要完整ORM的部分。我仍然建议采用SQLAlchemy路线,因为它为您提供了一种在Python中使用数据库的简单方法,您可以将其重用于任何类型的数据库。一旦你需要连接到Oracle或其他东西,直接使用SQLite所花费的时间就会被浪费。

        4
  •  2
  •   George Godik    17 年前

    从Django开始

    http://www.djangoproject.com/

    http://docs.djangoproject.com/en/dev/intro/tutorial01/

    EDIT1:你不需要使用Django的web应用程序部分。你可以使用数据库。直接操纵数据的模型类。无论你想出什么独立的应用程序/脚本,你都可以使用Django数据模型层。当你决定要一个web前端,或者至少想通过管理控制台编辑你的数据时,你可以在这里发帖并感谢我(或所有说使用ORM的人):)

        5
  •  1
  •   Ayman    17 年前

    1. SQLAlchemy
    2. Autumn
    3. Django ORM
    4. 使用SQLite官方支持 Pysqlite
    5. Storm
    6. Elixir
    7. 只需使用Python自己的Pickle

        6
  •  0
  •   M. Ryan    17 年前

    Django非常适合这一点,但海报上不清楚他是否真的需要制作一个编译的EXE或一个web应用程序。Django仅适用于web应用程序。

    我不确定你真正的“重”是从哪里来的。Django在代码行方面比其他任何主要的web应用程序框架都要小得多。

        7
  •  0
  •   Ned Deily    17 年前

    另一个可以添加到其他好建议中的选项: Elixir SQLAlchemy 如果你需要它。

        8
  •  0
  •   mjk Nokhaiz Khalid    13 年前

    有一个易于使用的Python模块,可以满足所有既定目标:

    http://yserial.sourceforge.net/

    令人惊讶的是,在大多数实际应用中,内存解决方案和持久解决方案之间没有太大区别。

    至于“保护我免受实际数据库的影响”,使用y_serial,人们甚至无法判断SQLite是这一切的幕后黑手。如果你将记录构造为Python字典,你可以专注于编写代码(而不是存储过程)。

        9
  •  0
  •   ced    12 年前

    python-sql 创建SQL查询。