Mysql
 sql >> база данни >  >> RDS >> Mysql

Превключване от SQLite към MySQL с Flask SQLAlchemy

Посоченият от вас урок показва правилния начин за свързване с MySQL с помощта на SQLAlchemy. По-долу е вашият код с много малки промени:

Моите предположения са, че вашият MySQL сървър работи на същата машина, където работи Flask и името на базата данни е db_name. В случай, че вашият сървър не е същата машина, поставете IP сървъра на мястото на localhost .

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:[email protected]/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', '[email protected]')

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 драйвер с пълна реализация на python pymysql . След като го инсталирате с помощта на pip install pymysql , SQLALCHEMY_DATABASE_URI ще се промени на:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:[email protected]/db_name'

Целта на използването на ORM като SQLAlchemy е, че можете да използвате различна база данни с малка или никаква промяна в повечето случаи. Така че моят отговор е да. Трябва да можете да използвате своя sqlite код, за да работите с MySQL с URI, картографиран, както в кода по-горе.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Master To Master репликация

  2. MySQL – Грешка при свързване – [MySQL][ODBC 5.3(w) Driver]Host „IP“ не е разрешен да се свързва с този MySQL сървър

  3. Работа с големи записи в приложение на Java EE

  4. Преобразувайте mysqli пагинация в подготвена пагинация на изрази

  5. Как да използвате BIGINT като автоматично увеличаващ се първичен ключ в Laravel 4