आपके द्वारा बताया गया ट्यूटोरियल SQLAlchemy का उपयोग करके MySQL से कनेक्ट करने का सही तरीका दिखाता है। बहुत कम परिवर्तनों के साथ आपका कोड नीचे दिया गया है:
मेरी धारणा है कि आपका MySQL सर्वर उसी मशीन पर चल रहा है जहां फ्लास्क चल रहा है और डेटाबेस का नाम db_name है। यदि आपका सर्वर समान मशीन नहीं है, तो सर्वर आईपी को localhost . के स्थान पर रखें ।
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:example@sqldat.com/db_name'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
admin = User('admin', 'example@sqldat.com')
db.create_all() # In case user table doesn't exists already. Else remove it.
db.session.add(admin)
db.session.commit() # This is needed to write the changes to database
User.query.all()
User.query.filter_by(username='admin').first()
मेरे साथ ऐसा हुआ कि SQLAlchemy . द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट ड्राइवर (mqsqldb ), मेरे आभासी वातावरण में मेरे लिए संकलित नहीं होता है। इसलिए मैंने पूर्ण पायथन कार्यान्वयन के साथ एक MySQL ड्राइवर चुना है pymysql . एक बार जब आप इसे pip install pymysql . का उपयोग करके इंस्टॉल कर लेते हैं , SQLALCHEMY_DATABASE_URI में बदल जाएगा:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:example@sqldat.com/db_name'
SQLAlchemy जैसे ORM का उपयोग करने का उद्देश्य यह है कि, आप अधिकांश मामलों में बहुत कम या बिना किसी बदलाव के विभिन्न डेटाबेस का उपयोग कर सकते हैं। तो, मेरा जवाब हां है। आपको उपरोक्त कोड के अनुसार यूआरआई मैप के साथ MySQL के साथ काम करने के लिए अपने sqlite कोड का उपयोग करने में सक्षम होना चाहिए।