建立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本身並沒有這麼規定,這只是一種編碼習慣。由於模組之間相互引用,不同模組可能有這樣的定義,而程式入口只有乙個。到底哪個程式入口被選中...