fp task1

前一篇文章里,已经完成了基本框架的搭建。

task 1 (区域):根据参考应用的模型,完成城市的数据插入(根据字母排序)。

  准备工作:获取所有城市的json 数据。

                     创建数据表(字母模型和城市模型)

创建一个名为resource 的文件夹,专门用来城市的json数据并创建一个cityModel(models下)的 文件。

在cityModel.py中完成对字母和城市模型的定义:

# 字母
class Letter(db.Model):
    __tablename__ = 'letters'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 字母
    letter = db.Column(db.String(2), nullable=False)


# 城市
class City(db.Model):
    # 表名
    __tablename__ = 'cities'
    # id
    id = db.Column(db.Integer, primary_key=True, autoincrement=False)
    # 城市名
    regionName = db.Column(db.String(32), nullable=False)
    # 城市编号
    cityCode = db.Column(db.Integer, nullable=False)
    # 拼音
    pinYin = db.Column(db.String(32), nullable=False)
    # 字母
    letter_id = db.Column(db.Integer, db.ForeignKey(Letter.id))

执行命令,生成数据表。

定义好模型后,插入城市和字母数据(resource/insertCity.py)。

import json
#插入数据第一步,连接数据库。
import pymysql


conn = pymysql.connect(host='127.0.0.1', user='****', password="*****",
                       database='DevTpp', port=3306,
                       charset='utf8')

#游标
cursor = conn.cursor()

with open('city.json','r',encoding='utf-8')as f:
    #读json文件
    city_dict = json.load(f)
#字母
    for letter in city_dict['returnValue'].keys():
        print(letter)

        letter_sql = "INSERT INTO letters(letter) VALUES (%r)" % (letter)
        # 开启事务
        try:
            conn.begin()
            # 插入字母
            cursor.execute(letter_sql)
            conn.commit()
        except Exception as e:
            conn.rollback()
#城市
        for city in city_dict['returnValue'][letter]:
            print(city)
            # 先 查询 字母的id
            cursor.execute('SELECT id FROM letters WHERE letter="{}"'.format(letter))
            #获取id,fetchone()查的是元组
            letter_id = cursor.fetchone()[0]
            id = city['id']

            regionName = city['regionName']
            cityCode = city['cityCode']
            pinYin = city['pinYin']
            city_sql = "INSERT INTO cities(id,regionName,cityCode,pinYin,letter_id) " \
                       "VALUES(%d,%r,%d,%r,%d)" % (id, regionName, cityCode, pinYin, letter_id)
            #开始执行
            try:
                conn.begin()
                # 插入字母
                cursor.execute(city_sql)
                conn.commit()
            except Exception as e:
                conn.rollback()
            print(city)


task 1 圆满完成。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值