{ "cells": [ { "cell_type": "markdown", "id": "16706c4a", "metadata": {}, "source": [ "# 连接数据库SQLite\n", "\n", "## 准备数据\n", " 之前的章节我们已经测试了Request API接口,并且把代码做了规范化处理。本节练习中,我们需要先把一些函数从notebook中导出到py文件中,这样就可以复用了。\n", " \n", "***需要注意的是: Pycharm中软件帮我们设置了项目的根目录,并且把根目录包含在系统path中。所以当我们用import导入时,python可以找到我们自己写的模块。 这里我们采用的是原生的jupyter notebook,需要手动将我们的模块添加到系统path中。一种方法是手动添加到环境变量中,这是永久方法。还有一种方法是添加临时path。本文就是采用后一种方式。***\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "5a28f37f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:\\Users\\renb\\PycharmProjects\\weather_dashapp\\weather_book\n" ] } ], "source": [ "import os\n", "import sys\n", "\n", "module_path = os.path.abspath(os.path.join('..'))\n", "print(module_path)\n", "if module_path not in sys.path:\n", " sys.path.append(module_path)" ] }, { "cell_type": "markdown", "id": "55dc985d", "metadata": {}, "source": [ "## 项目结构\n", "```\n", "weather_book\n", "├───.ipynb_checkpoints\n", "├───data\n", "├───steps <-- notebook 主要在这里\n", "├───weather_app\n", "│ ├───models <-- 函数写在这里\n", "\n", "```\n", "添加完path之后,就可以导入自己的模块了。 注意如果是上面的路径中采用的“..”,说明只返回上一层,如果是“../..\",说明返回了两层。 \n", "返回一层和两层对我的项目的区别是,以下代码是否需要包含weather_book。\n", "如果只返回一层,系统可以直接找到weather_app 模块,但是无法找到weather_book(因为已经在weather_book模块内了,不识模块真面目,只缘身在此山中)。" ] }, { "cell_type": "code", "execution_count": 3, "id": "0428fda7", "metadata": {}, "outputs": [], "source": [ "from weather_app.models.query_api import get_geo_from_city,generate_url,request_weather_info,transform_weather_raw,add_city_info" ] }, { "cell_type": "markdown", "id": "95c4ada3", "metadata": {}, "source": [ "一个好的习惯是,对你的函数进行快速测试。" ] }, { "cell_type": "code", "execution_count": 4, "id": "ecc46534", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | cloudcover | \n", "lifted_index | \n", "prec_type | \n", "prec_amount | \n", "temp2m | \n", "rh2m | \n", "weather | \n", "timestamp | \n", "wind_direction | \n", "wind_speed | \n", "longitude | \n", "latitude | \n", "city | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "9 | \n", "15 | \n", "none | \n", "0 | \n", "5 | \n", "54 | \n", "cloudyday | \n", "2022-02-03 03:00:00 | \n", "NE | \n", "3 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
1 | \n", "9 | \n", "15 | \n", "none | \n", "0 | \n", "5 | \n", "51 | \n", "cloudyday | \n", "2022-02-03 06:00:00 | \n", "NE | \n", "3 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
2 | \n", "9 | \n", "15 | \n", "none | \n", "1 | \n", "4 | \n", "75 | \n", "cloudyday | \n", "2022-02-03 09:00:00 | \n", "NE | \n", "3 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
3 | \n", "9 | \n", "15 | \n", "rain | \n", "1 | \n", "4 | \n", "82 | \n", "lightrainnight | \n", "2022-02-03 12:00:00 | \n", "NE | \n", "3 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
4 | \n", "9 | \n", "15 | \n", "rain | \n", "1 | \n", "4 | \n", "68 | \n", "lightrainnight | \n", "2022-02-03 15:00:00 | \n", "NE | \n", "2 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
59 | \n", "3 | \n", "15 | \n", "none | \n", "4 | \n", "5 | \n", "71 | \n", "pcloudynight | \n", "2022-02-10 12:00:00 | \n", "E | \n", "3 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
60 | \n", "9 | \n", "15 | \n", "none | \n", "4 | \n", "5 | \n", "71 | \n", "cloudynight | \n", "2022-02-10 15:00:00 | \n", "SE | \n", "2 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
61 | \n", "9 | \n", "15 | \n", "none | \n", "4 | \n", "5 | \n", "74 | \n", "cloudynight | \n", "2022-02-10 18:00:00 | \n", "SE | \n", "2 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
62 | \n", "9 | \n", "15 | \n", "none | \n", "4 | \n", "5 | \n", "75 | \n", "cloudynight | \n", "2022-02-10 21:00:00 | \n", "NE | \n", "3 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
63 | \n", "9 | \n", "15 | \n", "none | \n", "4 | \n", "5 | \n", "62 | \n", "cloudyday | \n", "2022-02-11 00:00:00 | \n", "NE | \n", "3 | \n", "121.469207 | \n", "31.232276 | \n", "shanghai | \n", "
64 rows × 13 columns
\n", "