实践记录

170216

已经周四了,要尽快开始学习和编程任务。谷歌"SQLite"但是文档太多,而且和语言无关,试一下搜索了"python SQLite"找到Python文档。文档的基本案例比较简单,实验成功,开始思考下一步需要理解的内容:

  • SQL语言基础(增删改查)
  • 如何从数据库取值、传值
  • 梳理作业需要实现的逻辑

SQL

谷歌SQL之后的结果如下,挑选一些看一下。由于w3schools总是打不开,找了中文的材料,简单看了SQL语法,基本结构是:select XXX from XXX where XXX的三段式结构。最好的办法还是继续在Python的SQLite中实践。

数据库连接过程

回到Python程序中,导入模块后首先要建立和数据库的连接,并且这时候把数据库创建完成。然后通过另一个对象的示例化,调用方法来操作数据库。

170217

开始尝试设计作业需要的数据库结构和需要的数据实例,查看了心知天气的数据结构,尝试先读一个数据过来,放到数据库里。数据库的设计初步是这样的:

UUID 日期 时间 城市 天气状况
wy00001 20170102 北京

把数据录入数据库

尝试手写一条数据,是可以顺利录入数据库的

从API读取数据写入数据库

尝试把API数据写入数据库,首先要生成一条数据,把生成的数据插入进去,同时还要生成一个随机码或者顺序码。 先完成了把数据读入的过程。

170218

DB-API 2.0 interface for SQLite databases SQLite date storage and conversion SQLite Date & Time 数据类型的说明

SQLite

重新看了SQLite的官方文档tutorial教程,分清楚了SQLite和Python的SQLite3模块的关系。SQLite是一种关系型数据库,可以利用SQL进行增删改查的一系列操作,但是也有一些自己的特性,比如说动态分配字段类型等,自己的字段类型也是有限的,需要根据SQLite的特点编写SQL进行相关操作。 SQLite3是Python的一个模块,内置了SQLite数据库,所以在新建连接的时候会自动生成db文件,通过一系列的函数执行SQL操作来操作SQLite数据库。 SQLiteStudio Mac版是一个可视化的工具,用于查看SQLite的数据结构字段等内容。SQLitetutorial提供了示例数据库,并且提供了各种语句可以用来执行示例数据库。

尝试SQL

下面根据现有的代码和数据库尝试进行调整

在过程中总是觉得很别扭,每一次执行都需要写python的函数execute取结果就更搞笑了,需要execute再fetchone。终于找到了Command Line Shell For SQLite,之前用sqlite失败,应该是sqlite3。sqlite不仅仅是一种数据库,还有自带的基于SQL拓展了自己的脚本语言,可以执行增删改查额外的操作,如果这些学会了,在python的模块中直接执行即可。

170219

准备直接进入最后的作业程序开发,简单看了大家的作业,绝大部分都是直接上手SQLAlchemy完成的作业。挣扎了一下,决定还是按部就班,先完成利用SQLite3的基础作业,再继续研究,因为自己想试一下,看看这两者的差异到底有多大。

作业逻辑

加入数据库操作之后,整个后台逻辑会发生变化,需要先梳理清楚操作逻辑再动手,这里有大变化的主要是查询和更正,逻辑如下:

  • 查询:输入城市名称后首先根据时间和城市判断该数据是否在数据库中,如果是相同城市在5分钟之内查询过,直接返回查询数据,如果不符合上述条件,再调用API进行数据查询。
  • 更正:首先查询要更正的城市是否在5分钟内查询过,如果有,根据更正的数据修改数据库表,如果没有,先调用API查询到结果,写入数据库之后,再执行更正操作。如果提供的更正信息不符合要求,则返回错误提示。

results matching ""

    No results matching ""