26.Tornado_peewee增加数据

1.概述

使用peewee增加数据方法就是获取模型赋成对象,调用对象的sava方法保存即可。
存储数据有两种方式,第一种调用对象挨个赋值,第二种是用模型全部赋值
赋值外键字段有两种方式,一种直接赋主表主键,另一种赋给主表的对象

2.代码实现

  1. 添加单条数据与添加多条数据
  2. 两种方式赋值外键
  3. 两种方式存储数据
  4. peewee创建表
from peewee import *
from peewee import database_required

# 1.获取数据库的链接
db = MySQLDatabase('tornado_db', host='127.0.0.1', port=3306, user='root',passwd='root')

# 创建一个基础模型类
class BaseModel(Model):
    class Meta:
        database = db

# 2.创建表的结构-模型类
class Commany(BaseModel):
    name = CharField(verbose_name='公司名称')
    full_name = CharField(verbose_name='公司全名称')
    year = IntegerField(verbose_name='开业时间')

    class Meta:
        table_name = 't_commany'

class Music(BaseModel):
    name = CharField(verbose_name='音乐名称')
    singer = CharField(verbose_name='演唱者')
    duration = IntegerField(verbose_name='时长')
    _type = IntegerField(verbose_name='类型')
    # 3.创建关联关系
    # 如果没有些field,会默认用另一张表的主键做外键
    # 会创建相应的变量名id,比如commany_id
    # commany并不是外键的名称,是一个外键对象,默认是commany_id
    commany = ForeignKeyField(Commany, verbose_name='版权所属',backref='musics')

    class Meta:
        table_name = 't_music'

# 4.映射表
def init_table():
    db.create_tables([Commany,Music])


# 添加单条数据方法1
def add_one1():
    c1 = Commany()
    c1.name = '广师大'
    c1.full_name = '广东技术师范大学'
    c1.year = 2000
    c1.save()

    m1 = Music()
    m1.name = '青花瓷'
    m1.singer = '周杰伦'
    m1.duration = '2:20'
    m1._type = '流行'
    m1.commany = c1 # 赋值外键字段方法1:赋给主表的对象
    m1.save()

# 添加单条数据方法2:
def add_one2():
    m1 = Music(name='大鱼',singer='周深', duration='2:00', _type='流行', commany=1) # 赋值外键字段方法2:直接赋主表主键
    m1.save()

# 增加多条数据方法
def add_many():
    commanys = [
        {
            'name': '滚石唱片',
            'full_name': '滚石国际音乐股份有限公司',
            'year': 1980
        },
        {
            'name': '华谊兄弟',
            'full_name': '华谊兄弟传媒股份有限公司',
            'year': 1994
        },
        {
            'name': '海蝶音乐',
            'full_name': '北京太合音乐文化发展有限公司',
            'year': 1986
        },
    ]
    musics = [
        {
            "name": "你是我左边的风景",
            "singer": "林志炫",
            "duration": "2:20",
            "_type": "摇滚",
            "commany": 1
        },
        {
            "name": "把你揉碎捏成苹果",
            "singer": "薛之谦",
            "duration": "2:10",
            "_type": "摇滚",
            "commany": 3
        },
        {
            "name": "游戏人间",
            "singer": "童安格",
            "duration": "1:20",
            "_type": "流行",
            "commany": 2
        },
        {
            "name": "故乡的云",
            "singer": "费翔",
            "duration": "2:40",
            "_type": "摇滚",
            "commany": 1
        },
        {
            "name": "诺言Jason",
            "singer": "青城山下白素贞",
            "duration": "1:10",
            "_type": "古典",
            "commany": 3
        },
        {
            "name": "勇敢的幸福",
            "singer": "Sweety",
            "duration": "1:23",
            "_type": "古典",
            "commany": 2
        },
        {
            "name": "爱丫爱丫",
            "singer": "By2",
            "duration": "2:22",
            "_type": "流行",
            "commany": 1
        },
        {
            "name": "我也曾像你一样",
            "singer": "马天宇",
            "duration": "2:28",
            "_type": "流行",
            "commany": 1
        }
    ]
    for c in commanys:
        c1 = Commany(**c)
        c1.save()
    for m in musics:
        m1 = Music(**m)
        m1.save()


if __name__ == '__main__':
    init_table()
    # add_one1()
    # add_one2()
    add_many()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值