我正在使用 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)。 我也检查了终端,但没有关于数据库的日志。 我不确定问题是什么。
如果您还有其他问题,请告诉我。
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_db.db'
db = SQLAlchemy(app)
在终端中输入:
python
打开 python shell,然后输入以下内容:
from app import app, db
db.create_all()