烧瓶并连接到数据库混乱

时间:2020-07-21 14:54:52

标签: database flask flask-sqlalchemy

我当前正在使用Flask创建一个Web应用程序。我目前的主要问题是理解连接数据库的概念,因为有许多在线资源使我难以建立与数据库的牢固连接。据我所知,SQL语法不是问题。

我选择的是SQLite方言的SQLAlchemy,而不是MySQL,PostgresSQL等。 我的第一个问题是:在使用SQLAlchemy时必须选择一种方言吗?我们不能按原样使用SQLAlchemy吗?

第二个问题:我在网上看到了许多使用“ phpMyAdmin”或类似的示例和教程,它们具有一种可视化和交互式的方式来在其localhost浏览器中处理其数据库(关系)。在为任何类型的项目创建任何类型的数据库连接之前,是否有必要进行设置?

第二个问题(扩展名):要设置pypMyAdmin,有一些教程,例如“ https://www.youtube.com/watch?v=hVHFPzjp064&t=238s”,表示要激活apache,请激活{{ 1}},然后下载PHP以使用工作台。如第二个问题所述,这些步骤是强制性的吗?因为许多教程似乎都没有显示如何进行设置。

第三个问题:由于我的项目发展缓慢,所以我使用“关注点分离”的概念。我的文件树如下:

enter image description here

经过研究,我相信我应该在MySQL文件中包含与数据库相关的代码吗?另外,当然要用必要的配置更新配置文件吗?我不明白的是,用于连接数据库的语法。以下代码将在上述两个文件中显示我的代码:

__init__.py
__init__.py

 # This class will ultimately bring our entire application together.

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

# Creating Flask app.
app = Flask(__name__)

# Creating a database object which represents the database.
# Created a migration object which represents the migration engine.
db = SQLAlchemy(app)
migrate = Migrate(app, db)

# TODO Explain reasons for using this method:
# Using method to determine Flask environment from the following link:
# https://www.youtube.com/watch?v=GW_2O9CrnSU&t=366s
if app.config["ENV"] == "production":
 app.config.from_object("config.ProductionConfig")
elif app.config["ENV"] == "testing":
 app.config.from_object("config.TestingConfig")
else:
 app.config.from_object("config.DevelopmentConfig")


# Importing views file to avoid circular import.
from app import views
from app import admin_views
from app import routes, models

如果我的问题似乎遍地都是,我深表歉意。我研究得越多,就对成功连接数据库感到困惑。

如果有人能够以“易于理解”的方式回答我的问题,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以通过从以下位置开始避免(或避免)一些困惑 flask-sqlalchemy,它提供了SQLAlchemy之上的便利层。 它将安排SQLALCHEMY_DATABASE_URI变成URI中指定数据库的SQLAlchemy“引擎”。 SQLAlchemy完成了所有繁重的工作。使用create_engine()时无需自己进行flask-sqlalchemy

补充说,按照Flask Mega Tutorial第15章的组织计划,您将走得很远。