Faryus
Faryus

Reputation: 161

Splitting Flask app into several files; Trouble with module importing

I'm trying to split a Flask app into several files and I've hit a snag with all the module imports.

Hopefully someone can shed some light o this issue...

This is the error I get:

NameError: global name 'db' is not defined

https://i.sstatic.net/6fqKr.png

I have this file/folder structure:

├── Pluto
│   ├── __init__.py
│   ├── pluto_admin.py
│   ├── pluto.db
│   ├── pluto_db.py
│   ├── pluto_home.py
│   ├── static
│   │   ├── css
│   │   ├── fonts
│   │   ├── img
│   │   └── js
│   └── templates
└── run.py

init.py:

from flask import Flask

pluto = Flask(__name__)

""" imports """
import Pluto.pluto_db
import Pluto.pluto_home
import Pluto.pluto_admin

pluto_db.py:

from Pluto import pluto
from flask.ext.sqlalchemy import SQLAlchemy

pluto.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////var/www/flask/pluto_dev/Pluto/pluto.db"
db = SQLAlchemy(pluto)

""" MODELS """

class Users(db.Model):
    id = db.Column(db.Integer, primary_key=True, nullable=False, autoincrement=True, unique=True)
    email = db.Column(db.String(254), unique=True, nullable=False)
    nume = db.Column(db.String(64), nullable=False)
    prenume = db.Column(db.String(64), nullable=False)

    def __repr__(self):
        return "<User %r>" % (self.email)

pluto_home.py:

from Pluto import pluto

@pluto.route("/")
def index():
    users = db.Users.query.all()
    return users

Upvotes: 0

Views: 77

Answers (1)

jab
jab

Reputation: 2984

Maybe you have to add this to pluto_home.py

from pluto_db import db

Upvotes: 1

Related Questions