Flask 学习笔记(八)-模型Model连接数据库

11 篇文章 0 订阅
10 篇文章 1 订阅

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/
最后通过模板渲染查询所有成员
在这里插入图片描述
python manage.py db migrate
python manage.py db upgrade

源码地址:https://github.com/565785929/StudyFlask/tree/master/d08

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sajor_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值