如何使用 Flask 创建数据库文件?

问题描述 投票:0回答:1

我正在使用 Flask 构建一个网站,但在创建数据库文件时遇到问题。 有没有办法在尽可能不改变项目结构的情况下解决这个问题?

这是我的项目结构:


├── db_model

│ └── models.py

├── guide_view

│ └── guide.py

├── static

├── templates

└── app.py

模型.py

from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

db = SQLAlchemy()

class User(db.Model):
    ...

guide.py

from flask import Blueprint, render_template, flash, request, redirect, url_for, jsonify
from flask_login import current_user, login_required, login_user, logout_user
from werkzeug.security import generate_password_hash, check_password_hash
from datetime import datetime
from db_model.models import db
from db_model.models import User

guide_view = Blueprint('guide_view', __name__, static_folder="static", template_folder="templates")

@guide_view.route('/')
@guide_view.route('/main')
def main():
    return render_template("index.html")

app.py

from flask import Flask
from flask_login import LoginManager
from flask_cors import CORS
from guide_view import guide
from flask_sqlalchemy import SQLAlchemy
from db_model.models import db
from db_model.models import User
import os
from os import path

app = Flask(__name__, static_url_path='/static')
CORS(app)

app.config['SECRET_KEY'] = os.environ.get('FLASK_SECRET_KEY', 'guide')
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', 'sqlite:///instance/database.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

def create_db(app):
    with app.app_context():
        db.create_all()
        print("Database tables created successfully.")

login_manager = LoginManager()
login_manager.login_view = 'guide_view.login'
login_manager.init_app(app)

@login_manager.user_loader
def load_user(id):
    return User.query.get(id)

app.register_blueprint(guide.guide_view, url_prefix="")

if __name__ == '__main__':
    if not path.exists('database.db'):
        create_db(app)
    app.run(host='0.0.0.0', port='1114', debug=True)

我检查了python版本(3.12.0)和Flask版本(3.0.0)。 我也检查了终端,但没有关于数据库的日志。 我不确定问题是什么。

如果您还有其他问题,请告诉我。

python sqlite flask
1个回答
0
投票
  • 确保您已将其添加到代码中
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_db.db' 
db = SQLAlchemy(app)

在终端中输入:

python
打开 python shell,然后输入以下内容:

  1. from app import app, db
  2. db.create_all()
© www.soinside.com 2019 - 2024. All rights reserved.