Flask 學習筆記(八)-模型Model連接數據庫

flask-sqlalchemy

文檔:http://flask-sqlalchemy.pocoo.org/2.3/

安裝:pip install flask-sqlalchemy

這次使用Pycharm創建一個Flask項目,目錄結構如下:
在這裏插入圖片描述
models.py

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

def init_db(app):
    db.init_app(app)

class Person(db.Model):
    p_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    p_name = db.Column(db.String(16))

創建一個Person類作爲ORM模型,有id和name兩個字段
init_db爲初始化函數,在manage中調用

manage.py

from flask import Flask
from flask_script import Manager

from App.models import init_db
from App.views import blue

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sqlite3.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

app.register_blueprint(blueprint=blue)
init_db(app)

manager = Manager(app=app)

if __name__ == '__main__':
    manager.run()

其中使用sqlite作爲數據庫

views.py

import random
from flask import Blueprint, render_template
from App.models import Person, db
blue = Blueprint('first_blue', __name__)

@blue.route('/createdb/')
def create_db():
	"""建表"""
    db.create_all()
    return 'DB Create Success'

@blue.route('/addperson/')
def add_person():
	"""添加成員"""
    p = Person()
    p.p_name = "睡着了,拉去除槍斃%d" % random.randrange(100)
    db.session.add(p)
    db.session.commit()
    return 'Person Add Success'

@blue.route('/getpersons/')
def get_persons():
	"""查詢所有成員"""
    persons = Person.query.all()
    print(type(persons))
    print(persons)
    return render_template('PersonList.html', persons=persons)

PersionList.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PersonList</title>
</head>
<body>
    <ul>
        {% for person in persons %}
            <li>{{ person.p_name }}</li>
        {% endfor %}
    </ul>
</body>
</html>

創建表:http://127.0.0.1:5000/createdb/
先訪問createdb創建sqlite3.db數據
添加成員:http://127.0.0.1:5000/addperson/
然後多次訪問addperson,添加幾個成員
使用pycharm連接sqlite數據庫,可以看到剛添加的六個成員信息
在這裏插入圖片描述
查詢所有成員:http://127.0.0.1:5000/getpersons/
最後通過模板渲染查詢所有成員

使用mysql儲存

首先連接mysql創建數據庫FlaskModel

create database FlaskModel charset='utf8';

只需將

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sqlite3.db'

改爲

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://user:password@localhost:3306/databasename'
# 本機user爲 root, password爲zzx,databasename爲FlaskModel  所以
# app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:zzx@localhost:3306/FlaskModel'

創建表:http://127.0.0.1:5000/createdb/
先訪問createdb創建sqlite3.db數據
添加成員:http://127.0.0.1:5000/addperson/
然後多次訪問addperson,添加幾個成員
查詢所有成員:http://127.0.0.1:5000/getpersons/
最後通過模板渲染查詢所有成員
在這裏插入圖片描述
源碼地址:https://github.com/565785929/StudyFlask/tree/master/d08

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章