python3 flask 使用Mysql資料庫

2021-08-25 19:26:42 字數 2568 閱讀 3274

建立flask基本專案結構

from flask import flask
安裝flask-sqlalchemy

pip install flask-sqlalchemy
匯入配置

from flask_sqlalchemy import sqlalchemy
python3 不再支援mysqkdb,連線mysql資料庫需要使用pymysql

安裝pymysql

pip install pymysql

定義表模型

class

user

(db.model):

id = db.column(db.integer, primary_key=true)

username = db.column(db.string(64), unique=true, nullable=true)

def__init__

(self, username):

self.username = username

def__repr__

(self):

return

''.format(self.username)

建立表

在python shell中

>>> 

>>> db.create_all()

新增資料

在python shell中

>>> 

>>>

>>> user=user('hou')

>>> db.session.add(user)

>>> db.session.commit()

查詢資料庫

>>> user.query.all()

>>> user.query.filter_by(username='hou').first()

一對多或一對一表關聯

多對多表關聯

修改**結構使其更好的提供介面

提供簡單rest介面user

from flask import jsonify, request

@bp.route('/users', methods=['get'])

defget_users

(): limit = min(request.args.get('limit', 10, int), 100)

offset = (request.args.get('page', 1, int) - 1) * request.args.get('limit', 10, int)

return jsonify([user.to_dict() for user in user.query.limit(limit).offset(offset).all()])

@bp.route('/users/', methods=['get'])

defget_user

(id):

return jsonify(user.query.get_or_404(id).to_dict())

@bp.route('/users', methods=['post'])

defadd_user

(): data = request.get_json() or {}

if'username'

notin data:

return bad_request('錯誤的引數')

user = user(username=data['username'])

db.session.add(user)

db.session.commit()

return jsonify(user.to_dict())

@bp.route('/users/', methods=['put'])

defupdate_user

(id):

user = user.query.get_or_404(id)

data = request.get_json() or {}

if'username'

notin data:

return bad_request('錯誤的引數')

setattr(user, 'username', data['username'])

db.session.commit()

return jsonify(user.to_dict())

@bp.route('/users/', methods=['delete'])

defdelete_user

(id):

user = user.query.get_or_404(id)

db.session.delete(user)

db.session.commit()

return jsonify()

源**位址

Python3 Flask安裝使用教程詳解

一 flask安裝環境配置 當前我的開發環境是miniconda3 pycharm。開發環境其實無所謂,自己使用python3 nodepad都可以。安裝flask庫 pip install flask 二 第乙個flask應用程式 將以下內容儲存為helloworld.py 三 get和post實...

python3在flask中使用mysql報錯

今天在python3 flask中使用mysql 無論怎麼弄都報錯 importerror no module named mysqldb 按照 stack overflow 上 說pip install mysqlclient或者pip install mysql python 結果都安裝不上,最...

python 使用flask的理解

相當於python的模擬程式入口,如果執行當前檔案,則該檔案內容會被執行,若該檔案內容被其他檔案引用,則不會執行檔案的內容 相當於python模擬的程式入口,python本身並沒有這麼規定,這只是一種編碼習慣。由於模組之間相互引用,不同模組可能有這樣的定義,而程式入口只有乙個。到底哪個程式入口被選中...