python3 操作数据库

10 篇文章 0 订阅
import pymysql
# 打开数据库连接
     db = pymysql.connect(host='127.0.0.1',user='root',passwd='919824467',db='mysql')
    # 使用 cursor() 方法创建一个游标对象 cursor
    cur = db.cursor()
    #数据库语句
    cur.execute('CREATE DATABASE IF NOT EXISTS code')
    cur.execute('USE code')
    cur.execute('''CREATE TABLE IF NOT EXISTS num(
                    id INT NOT NULL AUTO_INCREMENT,
                    code VARCHAR(32) NOT NULL,
                    PRIMARY KEY(id) )''')
            for num in codelist:
                cur.execute('INSERT INTO num(code) VALUES(%s)',(num))
                cur.connection.commit()
    db.close()
​
import base64
import re
from sqlalchemy import Column, String, DATE, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

database_info = {
    'user': '',
    'passwd': '',
    'ip': '',
    'port': '',
    'database': ''
}


class Coupon(Base):
    __tablename__ = 'coupon'

    id = Column(String(200), primary_key=True)
    deadline = Column(DATE)
    userID = Column(String(200))
    code = Column(String(200))


def make_connect(DB_info):
    connect_str = 'mysql+pymysql://{user}:{passwd}@{ip}:{port}/{database}'.format_map(DB_info)
    engine = create_engine(connect_str)
    DBSession = sessionmaker(engine)
    session = DBSession()
    return session


def parse_coupon(c_code):
    return base64.urlsafe_b64decode(c_code.encode('utf-8'))


def upload_to_database():
    session = make_connect(database_info)
    with open('coupon.txt', 'r') as file:
        for line in file.readlines():
            c_id = re.findall(r'.*/.*:(.*)\'', str(parse_coupon(line)))
            session.add(Coupon(id=c_id.pop(), code=line))
        session.commit()
        session.close()

if __name__ == '__main__':
    upload_to_database()

​

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值