系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > Mysql > 详细页面

flask 框架操作MySQL数据库简单示例

时间:2020-02-03来源:系统城作者:电脑系统城

本文实例讲述了flask 框架操作MySQL数据库。分享给大家供大家参考,具体如下:

一、创建数据库表格


 
  1. """
  2. Created on 19-10-8
  3. @requirement:Anaconda 4.3.0 (64-bit) Python3.6
  4. @description:创建表格
  5. """
  6. import pymysql
  7. server = '127.0.0.1'
  8. user = 'root'
  9. password = 'password'
  10. # 连接数据库
  11. conn = pymysql.connect(server, user, password, database='information_collection') # 获取连接
  12. cursor = conn.cursor() # 获取游标
  13. # "**ENGINE=InnoDB DEFAULT CHARSET=utf8**"-创建表的过程中增加这条,中文就不是乱码
  14. # 创建表
  15. cursor.execute("""
  16. CREATE TABLE if not exists user(
  17. user_id INT NOT NULL auto_increment primary key,
  18. user_name VARCHAR(100),
  19. user_password VARCHAR(100),
  20. user_nickname VARCHAR(100),
  21. user_email VARCHAR(100)
  22. )
  23. ENGINE=InnoDB DEFAULT CHARSET=utf8
  24. """)
  25. # 查询数据库表user内容
  26. cursor.execute('SELECT * FROM user')
  27. # 查看一行 多行:cursor.fetchall()
  28. row = cursor.fetchone()
  29. print(row)
  30. # if row[0] is None:
  31. # row0 = list(row)
  32. # row0[0] = 0
  33. # row = tuple(row0)
  34. # # 插入数据,注:与sqlserver有些区别
  35. cursor.execute("INSERT INTO user VALUES('%s','%s','%s','%s')" %('xiaoming','qwe','ming','@163.com'))
  36. # 提交数据,才会写入表格
  37. conn.commit()
  38. # 关闭游标关闭数据库
  39. cursor.close()
  40. conn.close()
  41.  

二、flask操作mysql


 
  1. """
  2. Created on 19-10-8
  3. @requirement:Anaconda 4.3.0 (64-bit) Python3.6
  4. @description:
  5. """
  6. from flask_sqlalchemy import SQLAlchemy
  7. from flask import Flask, jsonify, request
  8. import configparser
  9. import os
  10. app = Flask(__name__)
  11. # 使用ConfigParser 首选需要初始化实例,并读取配置文件:
  12. my_config = configparser.ConfigParser()
  13. my_config.read('db.conf')
  14. # 连接数据库information_collection
  15. app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DEV_DATABASE_URL') or \
  16. "mysql+pymysql://root:password@127.0.0.1:3306/information_collection"
  17. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
  18. mydb = SQLAlchemy()
  19. mydb.init_app(app)
  20. # 用户模型
  21. class User(mydb.Model):
  22. user_id = mydb.Column(mydb.Integer, primary_key=True)
  23. user_name = mydb.Column(mydb.String(60), nullable=False)
  24. user_password = mydb.Column(mydb.String(30), nullable=False)
  25. user_nickname = mydb.Column(mydb.String(50))
  26. user_email = mydb.Column(mydb.String(30), nullable=False)
  27. def __repr__(self):
  28. return '<User %r>' % self.user_name
  29. # 获取用户列表,所有数据
  30. @app.route('/users', methods=['GET'])
  31. def getUsers():
  32. data = User.query.all()
  33. datas = []
  34. for user in data:
  35. datas.append({'user_id': user.user_id, 'user_name': user.user_name, 'user_nickname':user.user_nickname, 'user_email': user.user_email})
  36. return jsonify(data=datas)
  37. # 添加用户数据,一条一条添加
  38. @app.route('/user', methods=['POST'])
  39. def addUser():
  40. user_name = request.form.get('user_name')
  41. user_password = request.form.get('user_password')
  42. user_nickname = request.form.get('user_nickname')
  43. user_email = request.form.get('user_email')
  44. user = User(user_name=user_name, user_password=user_password,user_nickname=user_nickname, user_email=user_email)
  45. try:
  46. mydb.session.add(user)
  47. mydb.session.commit()
  48. except:
  49. mydb.session.rollback()
  50. mydb.session.flush()
  51. userId = user.user_id
  52. if (user.user_id is None):
  53. result = {'msg': '添加失败'}
  54. return jsonify(data=result)
  55. data = User.query.filter_by(user_id=userId).first()
  56. result = {'user_id': user.user_id, 'user_name': user.user_name, 'user_nickname':user.user_nickname, 'user_email': user.user_email}
  57. return jsonify(data=result)
  58. # 获取单条数据
  59. @app.route('/user/<int:userId>', methods=['GET'])
  60. def getUser(userId):
  61. user = User.query.filter_by(user_id=userId).first()
  62. if (user is None):
  63. result = {'msg': '找不到数据'}
  64. else:
  65. result = {'user_id': user.user_id, 'user_name': user.user_name, 'user_nickname':user.user_nickname, 'user_email': user.user_email}
  66. return jsonify(data=result)
  67. # 修改用户数据
  68. @app.route('/user/<int:userId>', methods=['PATCH'])
  69. def updateUser(userId):
  70. user_name = request.form.get('user_name')
  71. user_password = request.form.get('user_password')
  72. user_nickname = request.form.get('user_nickname')
  73. user_email = request.form.get('user_email')
  74. try:
  75. user = User.query.filter_by(user_id=userId).first()
  76. if (user is None):
  77. result = {'msg': '找不到要修改的记录'}
  78. return jsonify(data=result)
  79. else:
  80. user.user_name = user_name
  81. user.user_password = user_password
  82. user.user_nickname = user_nickname
  83. user.user_email = user_email
  84. mydb.session.commit()
  85. except:
  86. mydb.session.rollback() # 回滚
  87. mydb.session.flush() # 重置
  88. userId = user.user_id
  89. data = User.query.filter_by(user_id=userId).first()
  90. 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}
  91. return jsonify(data=result)
  92. # 删除用户数据
  93. @app.route('/user/<int:userId>', methods=['DELETE'])
  94. def deleteUser(userId):
  95. User.query.filter_by(user_id=userId).delete()
  96. mydb.session.commit()
  97. return getUsers()
  98. if __name__ == '__main__':
  99. app.run()
  100.  

三、返回数据的样式

{
  "data": {
    "user_email": "@126.com",
    "user_id": 6,
    "user_name": "xiaoli",
    "user_nickname": "lili"
  }
}

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

分享到:

相关信息

  • MySQL的核心查询语句详解

    一、单表查询 1、排序 2、聚合函数 3、分组 4、limit 二、SQL约束 1、主键约束 2、非空约束 3、唯一约束 4、外键约束 5、默认值 三、多表查询 1、内连接 1)隐式内连接: 2)显式内连接: 2、外连接 1)左外连接 2)右外连接 四...

    2023-10-30

  • Mysql中如何删除表重复数据

    Mysql删除表重复数据 表里存在唯一主键 没有主键时删除重复数据 Mysql删除表中重复数据并保留一条 准备一张表 用的是mysql8 大家自行更改 创建表并添加四条相同的数据...

    2023-10-30

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载