Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển từ SQLite sang MySQL với Flask SQLAlchemy

Hướng dẫn do bạn chỉ ra cho thấy cách kết nối đúng đắn với MySQL bằng SQLAlchemy. Dưới đây là mã của bạn với rất ít thay đổi:

Giả định của tôi là máy chủ MySQL của bạn đang chạy trên cùng một máy có Flask đang chạy và tên cơ sở dữ liệu là db_name. Trong trường hợp máy chủ của bạn không phải là cùng một máy, hãy đặt IP máy chủ thay cho 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()

Tôi đã xảy ra trường hợp trình điều khiển mặc định được SQLAlchemy sử dụng (mqsqldb ), không được biên dịch cho tôi trong môi trường ảo của tôi. Vì vậy, tôi đã chọn trình điều khiển MySQL có triển khai python đầy đủ pymysql . Sau khi bạn cài đặt nó bằng cách sử dụng pip install pymysql , SQLALCHEMY_DATABASE_URI sẽ thay đổi thành:

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

Mục đích của việc sử dụng ORM như SQLAlchemy là ở chỗ, bạn có thể sử dụng các cơ sở dữ liệu khác nhau với ít hoặc không thay đổi trong hầu hết các trường hợp. Vì vậy, câu trả lời của tôi là có. Bạn sẽ có thể sử dụng mã sqlite của mình để làm việc với MySQL với URI được ánh xạ như trong mã trên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Văn bản bằng tiếng Bengali không được hiển thị trong tệp Unicode CSV

  2. Làm cách nào để chèn giá trị trong bảng bằng khóa ngoại bằng MySQL?

  3. Lưu hình ảnh trong cơ sở dữ liệu mysql

  4. Quyền truy cập bị từ chối đối với người dùng 'tên người dùng' @ 'localhost' (sử dụng mật khẩu:CÓ) trong C:\ webdev \ wamp \ www \ memberSite \ class \ Mysql.php trên dòng 9

  5. Cách tôi lưu và truy xuất hình ảnh trên máy chủ của mình trong ứng dụng web java