flask 框架操作MySQL数据库简单示例
本文实例讲述了flask框架操作MySQL数据库。分享给大家供大家参考,具体如下:
一、创建数据库表格
"""
Createdon19-10-8
@requirement:Anaconda4.3.0(64-bit)Python3.6
@description:创建表格
"""
importpymysql
server='127.0.0.1'
user='root'
password='password'
#连接数据库
conn=pymysql.connect(server,user,password,database='information_collection')#获取连接
cursor=conn.cursor()#获取游标
#"**ENGINE=InnoDBDEFAULTCHARSET=utf8**"-创建表的过程中增加这条,中文就不是乱码
#创建表
cursor.execute("""
CREATETABLEifnotexistsuser(
user_idINTNOTNULLauto_incrementprimarykey,
user_nameVARCHAR(100),
user_passwordVARCHAR(100),
user_nicknameVARCHAR(100),
user_emailVARCHAR(100)
)
ENGINE=InnoDBDEFAULTCHARSET=utf8
""")
#查询数据库表user内容
cursor.execute('SELECT*FROMuser')
#查看一行多行:cursor.fetchall()
row=cursor.fetchone()
print(row)
#ifrow[0]isNone:
#row0=list(row)
#row0[0]=0
#row=tuple(row0)
##插入数据,注:与sqlserver有些区别
cursor.execute("INSERTINTOuserVALUES('%s','%s','%s','%s')"%('xiaoming','qwe','ming','@163.com'))
#提交数据,才会写入表格
conn.commit()
#关闭游标关闭数据库
cursor.close()
conn.close()
二、flask操作mysql
"""
Createdon19-10-8
@requirement:Anaconda4.3.0(64-bit)Python3.6
@description:
"""
fromflask_sqlalchemyimportSQLAlchemy
fromflaskimportFlask,jsonify,request
importconfigparser
importos
app=Flask(__name__)
#使用ConfigParser首选需要初始化实例,并读取配置文件:
my_config=configparser.ConfigParser()
my_config.read('db.conf')
#连接数据库information_collection
app.config['SQLALCHEMY_DATABASE_URI']=os.environ.get('DEV_DATABASE_URL')or\
"mysql+pymysql://root:password@127.0.0.1:3306/information_collection"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=True
mydb=SQLAlchemy()
mydb.init_app(app)
#用户模型
classUser(mydb.Model):
user_id=mydb.Column(mydb.Integer,primary_key=True)
user_name=mydb.Column(mydb.String(60),nullable=False)
user_password=mydb.Column(mydb.String(30),nullable=False)
user_nickname=mydb.Column(mydb.String(50))
user_email=mydb.Column(mydb.String(30),nullable=False)
def__repr__(self):
return''%self.user_name
#获取用户列表,所有数据
@app.route('/users',methods=['GET'])
defgetUsers():
data=User.query.all()
datas=[]
foruserindata:
datas.append({'user_id':user.user_id,'user_name':user.user_name,'user_nickname':user.user_nickname,'user_email':user.user_email})
returnjsonify(data=datas)
#添加用户数据,一条一条添加
@app.route('/user',methods=['POST'])
defaddUser():
user_name=request.form.get('user_name')
user_password=request.form.get('user_password')
user_nickname=request.form.get('user_nickname')
user_email=request.form.get('user_email')
user=User(user_name=user_name,user_password=user_password,user_nickname=user_nickname,user_email=user_email)
try:
mydb.session.add(user)
mydb.session.commit()
except:
mydb.session.rollback()
mydb.session.flush()
userId=user.user_id
if(user.user_idisNone):
result={'msg':'添加失败'}
returnjsonify(data=result)
data=User.query.filter_by(user_id=userId).first()
result={'user_id':user.user_id,'user_name':user.user_name,'user_nickname':user.user_nickname,'user_email':user.user_email}
returnjsonify(data=result)
#获取单条数据
@app.route('/user/',methods=['GET'])
defgetUser(userId):
user=User.query.filter_by(user_id=userId).first()
if(userisNone):
result={'msg':'找不到数据'}
else:
result={'user_id':user.user_id,'user_name':user.user_name,'user_nickname':user.user_nickname,'user_email':user.user_email}
returnjsonify(data=result)
#修改用户数据
@app.route('/user/',methods=['PATCH'])
defupdateUser(userId):
user_name=request.form.get('user_name')
user_password=request.form.get('user_password')
user_nickname=request.form.get('user_nickname')
user_email=request.form.get('user_email')
try:
user=User.query.filter_by(user_id=userId).first()
if(userisNone):
result={'msg':'找不到要修改的记录'}
returnjsonify(data=result)
else:
user.user_name=user_name
user.user_password=user_password
user.user_nickname=user_nickname
user.user_email=user_email
mydb.session.commit()
except:
mydb.session.rollback()#回滚
mydb.session.flush()#重置
userId=user.user_id
data=User.query.filter_by(user_id=userId).first()
result={'user_id':user.user_id,'user_name':user.user_name,'user_password':user.user_password,'user_nickname':user.user_nickname,'user_email':user.user_email}
returnjsonify(data=result)
#删除用户数据
@app.route('/user/',methods=['DELETE'])
defdeleteUser(userId):
User.query.filter_by(user_id=userId).delete()
mydb.session.commit()
returngetUsers()
if__name__=='__main__':
app.run()
三、返回数据的样式
{
"data":{
"user_email":"@126.com",
"user_id":6,
"user_name":"xiaoli",
"user_nickname":"lili"
}
}
希望本文所述对大家基于flask框架的Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。