не могу импортировать базу данных flask
это main.py:
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
if __name__ == '__main__':
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///user.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class Users(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String, nullable=False)
password = db.Column(db.String, nullable=False)
key = db.Column(db.String, nullable=False)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/login')
def login():
return render_template('log-in-form.html')
@app.route('/signup')
def signup():
return render_template('sign-up-form.html')
app.run()
что бы создать базу данных нужно импортировать из main bd.
from main import db
но выдает ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'db' from 'main'
(C:\Users\ANDREY\PycharmProjects\mediaprojectreturn\main.py)
Помогите пожалуйста! Если что то сделал не так извиняюсь - первый раз на форуме. Спасибо
Ответы (1 шт):
Автор решения: Andy Pavlov
→ Ссылка
Смотрите. Запуск app.run() выносим в
if __name__ == '__main__':. Все остальное выносим из под него.
Все, что под строкой if __name__ == '__main__' не будет выполняться при импорте. А Вы под него как раз туда все объявление засунули.
Файл main.py
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///user.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class Users(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String, nullable=False)
password = db.Column(db.String, nullable=False)
key = db.Column(db.String, nullable=False)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/login')
def login():
return render_template('log-in-form.html')
@app.route('/signup')
def signup():
return render_template('sign-up-form.html')
if __name__ == '__main__':
app.run()
Файл db_make.py
from main import db
db.create_all()