温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Flask框架连接数据库的方法

发布时间:2020-08-06 11:13:12 来源:亿速云 阅读:886 作者:小新 栏目:编程语言

这篇文章主要介绍了Flask框架连接数据库的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

Flask不能直接连接数据库,需要借助于ORM(Object Relational Mapper)。在这一部分,我们将借助于SQLAlchemy使用Postgres数据库。

Flask框架连接数据库的方法

安装Flask-SQLAlchemy和Postgres

首先安装flask-sqlalchemy:

$ pip install flask-sqlalchemy

然后从官方下载并安装postgres:https://postgresapp.com/

创建数据库

在终端中使用下面的命令创建一个appdb数据库:

$ createdb appdb

更新应用配置

修改app.config,添加数据库相关的配置信息:

app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI']='postgresql://localhost/appdb'
SQLALCHEMY_TRACK_MODIFICATIONS = True
db = SQLAlchemy(app)

然后在代码中就可以使用这些配置数据了:

from flask import Flask, request, render_template
from flask_sqlalchemy import SQLAlchemy
# Settingsapp = Flask(__name__)
app.config['DEBUG'] = Trueapp.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/appdb'
db = SQLAlchemy(app)@app.route('/')def hello_world():
    return 'Hello, World!'if __name__ == '__main__':
    app.run()

现在,让我们创建第一个模型(Model)。所有模型的基类是db.Model,使用Column来定义数据列:

class Post(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String(80), unique=True)
    post_text = db.Column(db.String(255))
    
    def __init__(self, title, post_text):
        self.title = title
        self.post_text = post_text

在代码中使用模型:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/testdb'
db = SQLAlchemy(app)
class Post(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String(80), unique=True)
    post_text = db.Column(db.String(255))
    def __init__(self, title, post_text):
        self.title = title
        self.post_text = post_text
@app.route('/')
def index():
    return "Hello World"
app = Flask(__name__)
if __name__ == "__main__":
    app.run()

感谢你能够认真阅读完这篇文章,希望小编分享Flask框架连接数据库的方法内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI