数智图书馆-无锡数智政务 本次搜索耗时 3.092 秒,为您找到 563 个相关结果.
  • 空标题文档

    第8章 装饰器和mixin——横切方面 一个软件的设计通常会包括一些跨越了不同的类、函数和方法的方面。有关技术方面的例子,包括日志、设计和安全,这些方面必须有一致地实现。在面向对象编程中,重用功能的通用方法是继承一个类。但是,继承并不总是最合适的方案。在软件设计中,有一些方面和类层次结构是正交的。这些通常被称为“横切关注点”(cross-cutting ...
  • 空标题文档

    9.1 持久化、类、状态以及数据表示 Python对象主要保存在计算机内存中,它们的生命周期就是Python进程。它们的生命周期甚至没有那么长,也许只是与它们在命名空间中的引用长短一致。如果希望一个对象的生命周期超过Python进程或命名空间,我们需要将它持久化。 大部分操作系统以文件系统的方式来提供持久化存储服务。这通常包括磁盘驱动器、闪存或其他稳定...
  • 空标题文档

    10.1 分析持久化对象用例 第9章“序列化和保存——JSON、YAML、Pickle、CSV和XML”中介绍的持久化机制主要针对基于压缩文件读写一个已序列化的对象。如果想要更新文件的任何一个部分,必须替换整个文件。这是使用数据的简洁表示法的结果,即很难在文件中定位一个对象,同时如果对象的大小改变了,替换对象也很困难。比起用更聪明、更复杂的算法来解决这些...
  • 空标题文档

    10.4 搜索、扫描和查询 别怕,这些只是同义词。我们会交换地使用这些词。 对于数据库搜索的设计,我们有两种选择。我们可以返回一系列的键或者是一系列的对象。由于我们的设计强调要将键保存在每个对象中,从数据库获取一系列的对象能够满足我们的需求,所以我们会主要关注这种设计。 搜索天生就是低效的操作,我们会倾向于将更多的注意力放在索引上。在后面的章节中,我...
  • 空标题文档

    11.3 从Python对象到SQLite BLOB列的映射 我们可以将 SQL 列映射为类的定义,这样一来就能够基于数据库中的数据来构造适当的Python对象。SQLite中包含了一个二进制大对象(Binary Large Object,BLOB)数值类型。我们可以使用pickle来处理Python对象,然后将它们存入BLOB列中。可以使用字符串来表示...
  • 空标题文档

    11.7 通过指定标签字符串查询文章对象 在关系数据库中有一个很重要的优势是可以得到对象之间的关系。使用SQLAlchemy的查询能力,可以得到Tag与Post之间的关系,并查询出所有使用同样Tag字符串的Post。 查询是会话的一个功能。这意味着已经在会话中的对象不需要从数据库中再次取出,从而节约了时间。没有包含在会话中的对象会被缓存在会话中,这样一...
  • 空标题文档

    12.1 类、状态和表示 在一些情况下,我们需要创建为远程客户端提供数据的服务器。在一些其他情况下,我们可能希望使用来自远程计算的数据,也可能会遇到一种混合的情况,就是我们的应用程序是远程计算机的一个用户,也是移动应用程序的服务器。有许多的情况我们的应用程序会使用保存的远程计算机的对象。 我们需要一个能将对象在不同进程间传输的方法,可以将一个大问题分解...
  • 空标题文档

    12.2 用HTTP和REST传输对象 超文本传输协议(Hypertext Transfer Protocol,HTTP)是由一系列的RFC(Request for Comments)文档定义的。我们不会介绍所有的细节,但是会触及其中3个高层的部分。 HTTP协议包括请求和响应。一个请求包括一个方法、一个统一资源标识符(Uniform Resource...
  • 空标题文档

    第13章 配置文件和持久化 配置文件是对象持久化的一种形式。它包括了一个序列化的、在应用程序或服务器中对默认状态可编辑的表示。我们将对第9章“序列化和保存——JSON、YAML、Pickle、CSV和XML”中有关对象的序列化内容进行扩展,创建配置文件。 另外,如果有纯文本的可编辑的配置文件,也必须将应用定义为可配置的。进一步说,我们必须为应用程序定义...
  • 空标题文档

    13.4 使用eval()完成更多的文字处理 配置文件中可能会包括一些类型的值,它们并没有简单的字符串表示。例如,集合可能会作为一个元组或list文本,一个映射可能会作为一个dict文本。我们有不同的选择来处理这些复杂的值。 这些选择围绕着一个问题,就是转换逻辑需要多复杂的Python语法。对于一些类型(int、float、bool、complex、d...