Python 实现200个优惠券并写入数据库, 然后读取数据库的内容

来源 自 https://github.com/Yixiaohan/show-me-the-code

参考 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432010494717e1db78cd172e4d52b853e7fd38d6985c000

注意 插入数据库记录的时候, cur.execute("insert into coupon (id,number) values ('%s','%s')"%(i,item[i])), 要用双引号,不然会报错, 类似,Traceback (most recent call last):
  File "./py0002.py", line 44, in <module>
    cur.execute('insert into coupon (id,number) values (%s,%s)',(i,item[i]))
sqlite3.OperationalError: near "%": syntax error。

题目

第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?

第 0002 题: 将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。然后读取数据库,查看是否是期望的行为.

cat py0002.py
#!/usr/bin/python
import random
import string
import sqlite3
'''
##input :digit the length of the coupon
def youhui_creator(digit):
    youhui=''
    for item in range(digit):
        ##each time random generate one letter or number from 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
        youhui+= random.choice(string.ascii_uppercase+string.digits)
    return youhui

def two_hundred_youhui():
    youhui =''
    count = 1
    for i in range(200):
        youhui+='coupon no.'+str(count)+' '+youhui_creator(12)+'\n'
        count=count+1

   #将生成的优惠券保存到文件里面
    with open('coupon.txt','w')as f:
        f.write(youhui)
two_hundred_youhui()
'''
record=[]
item=['1']*200

#读取文件里面的优惠券,并把文件里面保存的优惠券写入数据库
with open('coupon.txt','r')as f:
    L=f.readlines()
count=1
for content in L:
    content.replace('\n','')
    if (count<10):
        record=content[len('coupon no.')+(2):]
    elif(count>=10 and count<100):
        record=content[len('coupon no.')+(3):]
    else:
        record=content[len('coupon no.')+(4):]
    item[count-1]=record
    print item[count-1]
    count=count+1
conn=sqlite3.connect('coupon.db')
cur=conn.cursor()
cur.execute('create table if not exists coupon (id varchar(10) primary key,number varchar(20))')
for i in range(200):
    cur.execute("insert into coupon (id,number) values ('%s','%s')"%(i,item[i]))
    #cur.execute('insert into coupon (id,number) values (%s,%s)'%(i,item[i]))
for i in range(200):
    record=cur.execute("select * from coupon where id =('%s')"%(i))
    print cur.fetchall()
##close cursor
cur.close()
## commit the transaction
conn.commit()
##close connection
conn.close(

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值