Flask sqlAlchemy'yi mysql veritabanına bağlayamıyorum
Sep 25 2020
Flask uygulamamı MySQL veritabanına bağlamaya çalışıyorum. İşte MySQL verileri
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.01 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| alchemy |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.01 sec)
init .py burada
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
from app import routes, models
config.py burada
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config(object):
SECRET_KEY = os.environ.get('SECRET_KEY') or 'test-key-motherfucker'
SQLALCHEMY_DATABASE_URI = 'mysql://[email protected]:3360/alchemy'
SQLALCHEMY_TRACK_MODIFICATIONS = False
and models.py
from app import db
class Test(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), index=True, unique=True)
def __repr__(self):
return '<Test {}>'.format(self.name)
db'yi başlatmaya çalıştığımda
flask db init
flask db upgrade
Alırım
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:mysql
Pymysql SQLALCHEMY_DATABASE_URI = 'mysql + pymysql: //[email protected]: 3360 / alchemy' kullanmayı denedim
mysql ile sqlalchemy nasıl bağlanır?
Yanıtlar
1 AbdullahAlessa Sep 26 2020 at 00:46
mysql veritabanına bağlanmanın doğru nedeni
mysql://username:password@server/db
önce bunu dene
SQLALCHEMY_DATABASE_URI = 'mysql://root:@127.0.0.1/alchemy'
işe yaramadıysa bunu dene
SQLALCHEMY_DATABASE_URI = 'mysql://root:@127.0.0.1:3306/alchemy'
işe yaramadıysa bunu dene
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/alchemy
Birçok seçenek koyduğum için üzgünüm ama umarım biri işe yarar :)
hiçbiri işe yaramadıysa, sorun veritabanıyla bağlantı değil
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'