config flask app with a app.config.from_object
Question:
I have a flask app with MySQL DB i want to config my app with config.formobject(object)
Then, I write the following class:
import os
class Config:
DEBUG = True
TESTING = False
SESSION_COOKIE_SECURE = True
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:tool789@localhost/city'"
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = os.urandom(24)
MAIL_SERVER = "Yourdomain"
MAIL_USERNAME = "username"
MAIL_PASSWORD = "password"
MAIL_PORT = 456
MAIL_USE_SSL = True
MAIL_USE_TSL = False
and import it to my _init_.py
here :
from flask import Flask
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail, Message
from app.config import *
app = Flask(__name__)
Bootstrap(app)
db = SQLAlchemy(app)
app.config.from_object(Config)
from app import views
from app import admin_views
from app.dbmodels import *
with app.app_context():
db.create_all()
when I run my server, I get this error :
Traceback (most recent call last):
File "C:UsersPouryaPycharmProjectswebsiteprojectrun.py", line 1, in <module>
from app import app
File "C:UsersPouryaPycharmProjectswebsiteprojectapp__init__.py", line 10, in <module>
db = SQLAlchemy(app)
File "C:UsersPouryaPycharmProjectswebsiteprojectvenvlibsite-
packagesflask_sqlalchemyextension.py", line 219, in __init__
self.init_app(app)
File "C:UsersPouryaPycharmProjectswebsiteprojectvenvlibsite-
packagesflask_sqlalchemyextension.py", line 307, in init_app
raise RuntimeError(
RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set.
what is my problem and who can I fix it ?
Answers:
You are creating your db
client using the app
‘s configuration, but you haven’t configured app
yet. Try configuring app first:
app.config.from_object(Config)
db = SQLAlchemy(app)
I have a flask app with MySQL DB i want to config my app with config.formobject(object)
Then, I write the following class:
import os
class Config:
DEBUG = True
TESTING = False
SESSION_COOKIE_SECURE = True
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:tool789@localhost/city'"
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = os.urandom(24)
MAIL_SERVER = "Yourdomain"
MAIL_USERNAME = "username"
MAIL_PASSWORD = "password"
MAIL_PORT = 456
MAIL_USE_SSL = True
MAIL_USE_TSL = False
and import it to my _init_.py
here :
from flask import Flask
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail, Message
from app.config import *
app = Flask(__name__)
Bootstrap(app)
db = SQLAlchemy(app)
app.config.from_object(Config)
from app import views
from app import admin_views
from app.dbmodels import *
with app.app_context():
db.create_all()
when I run my server, I get this error :
Traceback (most recent call last):
File "C:UsersPouryaPycharmProjectswebsiteprojectrun.py", line 1, in <module>
from app import app
File "C:UsersPouryaPycharmProjectswebsiteprojectapp__init__.py", line 10, in <module>
db = SQLAlchemy(app)
File "C:UsersPouryaPycharmProjectswebsiteprojectvenvlibsite-
packagesflask_sqlalchemyextension.py", line 219, in __init__
self.init_app(app)
File "C:UsersPouryaPycharmProjectswebsiteprojectvenvlibsite-
packagesflask_sqlalchemyextension.py", line 307, in init_app
raise RuntimeError(
RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set.
what is my problem and who can I fix it ?
You are creating your db
client using the app
‘s configuration, but you haven’t configured app
yet. Try configuring app first:
app.config.from_object(Config)
db = SQLAlchemy(app)