मैं Flask-Migrate उपयोग करना चाहते हैं और उनके उदाहरण से देख रहा हूँ:मैं डीबी ऑब्जेक्ट को पास किए बिना app.py के बाहर फ्लास्क मॉडलों को कैसे विभाजित करूं?
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.script import Manager
from flask.ext.migrate import Migrate, MigrateCommand
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
if __name__ == '__main__':
manager.run()
यह एक सरल खेलने उदाहरण के रूप में अच्छा काम करता है, लेकिन मैं एक मॉडल की तुलना में अधिक है और मैं मॉडल को परिभाषित नहीं करना चाहते इस स्क्रिप्ट और एक में जो मेरे आवेदन कोड को परिभाषित करता है। इस प्रकार, मैं उन्हें एक मॉडल फ़ाइल में खींचना चाहता हूं जिसे मैं दोनों के बीच साझा कर सकता हूं।
मैं User
कक्षा को models.py
में रखकर और फिर वहां से उपयोगकर्ता को आयात करके ऐसा करने का प्रयास कर रहा हूं। दुर्भाग्य से, यह NameError: name 'db' is not defined
फेंकता है।
मेरा प्रश्न (ओं) हैं:
- मैं अपने
models.py
मेंdb = SQLAlchemy(app)
का प्रयोग करना होगा, और यदि हां यह दोनों मेरे प्रवास स्क्रिप्ट और कुप्पी आवेदन अपने आप में उपलब्ध हो जाएगा? - यदि मैं इसे
models.py
में नहीं डाल सकता (या नहीं), तो मैं अपने मॉडल कोdb
पारित किए बिना अपनी फ़ाइल में कैसे उपयोग करूं?
इसे देखें https://realpython.com/blog/python/python-web-applications-with-flask-part-ii/ – PetarP