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

SQLAlchemy create_all () không tạo bảng

Bạn nên đặt lớp mô hình của mình trước create_all() gọi, như thế này:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://login:[email protected]/flask_app'
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

db.create_all()
db.session.commit()

admin = User('admin', '[email protected]')
guest = User('guest', '[email protected]')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
users = User.query.all()
print users

Nếu các mô hình của bạn được khai báo trong một mô-đun riêng, hãy nhập chúng trước khi gọi create_all() .

Giả sử, User mô hình nằm trong một tệp có tên models.py ,

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://login:[email protected]/flask_app'
db = SQLAlchemy(app)

# See important note below
from models import User

db.create_all()
db.session.commit()

admin = User('admin', '[email protected]')
guest = User('guest', '[email protected]')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
users = User.query.all()
print users

Lưu ý quan trọng: Điều quan trọng là bạn phải nhập các mô hình của mình sau khi khởi tạo db đối tượng kể từ, trong models.py của bạn _bạn cũng cần nhập db đối tượng từ mô-đun này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để chọn nhiều hơn 1 bản ghi mỗi ngày?

  2. Làm cách nào để nhập mô-đun hoặc cài đặt tiện ích mở rộng trong PostgreSQL 9.1+?

  3. Cách nhanh chóng để khám phá số hàng của một bảng trong PostgreSQL

  4. Tránh bế tắc PostgreSQL khi thực hiện cập nhật hàng loạt và thao tác xóa

  5. PostgreSQL 9.1:Cách nối các hàng trong mảng mà không có bản sao, THAM GIA một bảng khác