PythonShowMeTheCode(0002): 连接数据库

2016-08-18  本文已影响0人  tyrone_li

1. 题目

第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL关系型数据库中。

2.实现

step 1:安装MySQL(按解压免安装版本介绍)

step 2:运行MySQL

#cmd进入MySQL解压bin目录
cd %解压文件bin目录%

#安装MySQL服务,启动服务
mysqld -nt -install
net start mysql

#登陆
mysql -u root -p
Enter your password:
Welcome to the MySQL monitor...

step 3:安装mysqlclient库

pip install mysqlclient

step 4:编程实现

# -*- coding:utf-8 -*-
import uuid
import MySQLdb


def create_code(num, length):
    result = []
    for i in range(0, num):
        code_str = str(uuid.uuid4()).replace('-', '')[:length].upper()
        for j in range(4, length, 5):
            code_str = code_str[:j] + '-' + code_str[j:]
        if code_str not in result:
            result.append(code_str)
    return result


def save_code(code_result):
    if len(code_result) == 0:
        return
    db = MySQLdb.connect(user="root", passwd="", db="code")
    cursor = db.cursor()
    cursor.execute("show tables in `code`")
    tables = cursor.fetchall()

    if ('code',) in tables:
        print("Create table 'code' already.")
    else:
        cursor.execute("create table code(id int auto_increment primary key, code varchar(20));")

    for i in range(len(code_result)):
        cursor.execute("insert into code(code) values(%s);", (code_result[i],))
    cursor.close()
    db.commit()
    db.close()

if __name__ == '__main__':
    save_code(create_code(20, 16))

3. 解决问题

<i>I. 安装mysqlclient出现error: Unable to find vcvarsall.bat</i>

pip install wheel
下载页面

<i>II. 向数据库写入中文时出现乱码</i>

上一篇 下一篇

猜你喜欢

热点阅读