我们在使用Flask搭建web网站时一定会用到数据库,下面我们简单了解一下Flask如何操作数据库,文章以Mysql为例进行连接操作
创建Flask
成功安装之后如app.py
1 2 3 4 5 6 7 8 9
| from flask import Flask app = Flask(__name__)
@app.route('/') def hello_world(): return 'hello world'
if __name__ == '__main__': app.run()
|
安装 sqlalchemy
2.1 新建文件 config.py
1 2 3 4 5 6 7 8 9 10 11 12
| DIALECT = 'mysql' DRIVER = 'pymysql' USERNAME = 'root' PASSWORD = '****' HOST = '127.0.0.1' PORT = '3306' DATABASE = '数据库名'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ECHO = True
|
新建文件 exts.py
1 2
| from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
|
建数据模型
新建model.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| from exts import db
class EntityBase(object): def to_json(self): fields = self.__dict__ if "_sa_instance_state" in fields: del fields["_sa_instance_state"] return fields
class User(db.Model, EntityBase): __tablename__ = 'tp_user' id = db.Column(db.Integer, primary_key=True) token = db.Column(db.String(20)) mobile = db.Column(db.String(20)) head = db.Column(db.String(100)) nickName = db.Column(db.String(100)) status = db.Column(db.Date)
|
使用数据库
新建user文件夹,文件 index.py

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| from flask import Blueprint, jsonify from model import User user = Blueprint('user', __name__);
@user.route('/list') def list_users(): users = User.query.all() print(users) users_output = [] for user in users: users_output.append(user.to_json()) return jsonify(users_output)
@user.route('/details/<userid>') def find_user(userid): user = User.query.get(userid) return jsonify(user.to_json())
|
引用
app.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| from flask import Flask
from exts import db
import config
from user.index import *
app = Flask(__name__) app.config.from_object(config) db.init_app(app) //引用模型 app.register_blueprint(user, url_prefix="/user")
if __name__ == '__main__': app.run(debug=True)
|
第七步启动

浏览器访问
http://127.0.0.1:5000/user/list
遇到的问题
问题1
在虚拟环境terminal终端中已经安装了包,但是运行的时候还是报错:No module named ‘flask_sqlalchemyl’
在pycharm这个perference这个页面,手动添加包即可:

问题2
python操作Mysql(ModuleNotFoundError: No module named ‘pymysql’)
下载方式两种:
1、首先下载Mysql库:https://github.com/PyMySQL/PyMySQL
下载好在进入文件夹shift+鼠标右击进入cmd命令,输入
这就已经安装好了pymysql
2、进入cmd,执行pip install pymysql,或者直接按照问题1中的方式直接在pycharm安装也是可以的
然后进入pycharm测试操作一下pymysql是否能够连接
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import pymysql
print("================测试是否连通====================") try: conn = pymysql.connect(host='localhost', user='root', passwd='123', db='db_pro', port=3306, charset='utf8') cur = conn.cursor() cur.execute('select version()') version = cur.fetchone() print(version) cur.close() conn.close() except Exception: print("发生异常")
|
1 2
| 版权声明:本文为CSDN博主「北楷」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_40111696/article/details/111102139
|
Gitalk 加载中 ...