这可能是重复的,但其他问题的所有解决方案都没有帮助我。
我正在尝试模块化我的代码,我将配置文件移动到名为settings.py的单独文件中。
运行我将从终端“python3 manage.py shell”运行的代码 Python没有更新 然后我执行
from flask_blog import db
from author.models import Author
db.create_all()
因此,问题是:为什么数据库没有更新?
我关注配置的三个文件是:
manage.py 处理服务器设置(简单的wordds)
settings.py 暂时处理数据库
models.py 数据库模型
__ init __。py init 文件
以下代码是 settings.py
import os
SECRET_KEY = 'NOTHING FOR NOW'
DEBUG = True
DB_USERNAME = 'root'
DB_PASSWORD = '1234'
BLOG_DB_NAME = 'blog2'
DB_HOST = os.getenv('IP', '127.0.0.1')
DB_URI = 'mysql+pymysql://root@127.0.0.1:blog'
# DB_URI = 'mysql+pymysql://%s:%s@%s/%s' % (DB_USERNAME, DB_PASSWORD, DB_HOST, BLOG_DB_NAME)
SQLALCHEMY_DB_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = True
另一个名为 manage.py 的文件(下面),它处理要运行的基本项目配置。
import os, sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from flask.ext.script import Manager, Server
from flask_blog import app
manager = Manager(app)
manager.add_command("runserver", Server(
use_debugger = True,
use_reloader = True,
host = os.getenv('IP', '127.0.0.1'),
port = int(os.getenv('PORT', 5000))
))
if __name__ == "__main__":
manager.run()
最后是下面的数据库模型。的 models.py
from flask_blog import db
class Author(db.Model):
id = db.Column(db.Integer, primary_key=True)
fullname = db.Column(db.String(80))
email = db.Column(db.String(35), unique=True)
username = db.Column(db.String(80), unique=True)
password = db.Column(db.String(80))
is_author = db.Column(db.Boolean)
def __init__(self, fullname, email, username, password, is_author=False):
self.fullname = fullname
self.email = email
self.username = username
self.password = password
self.is_author = is_author
def __repr__(self):
return '<Author %r>' % self.username
__ init __。py 位于
之下from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('settings')
db = SQLAlchemy(app)
from blog import views
from author import views
如果您想查看整个项目,请click here
答案 0 :(得分:1)
在settings.py
中,尝试替换
SQLALCHEMY_DB_URI = DB_URI
与
SQLALCHEMY_DATABASE_URI = DB_URI
DB_URI = 'mysql+pymysql://root@127.0.0.1:blog'
与
DB_URI = 'mysql+pymysql://root@127.0.0.1/blog'
根据连接URI格式:
dialect+driver://username:password@host:port/database