设置Flask-SQLAlchemy

时间:2012-06-23 06:47:19

标签: python sqlalchemy flask flask-sqlalchemy

尝试在Windows上设置Flask和SQLAlchemy,但我遇到了问题。

我一直在使用Flask-SQLAlchemy以及PostgreSQL 9.1.4(32位)和Psycopg2包。以下是代码的相关部分,我创建了一个基本的用户模型,用于测试我的数据库是否正在连接和提交。

代码的三位代码来自我的应用程序的__init__.py文件,models.py文件和我的settings.py文件。

当我尝试打开我的交互式提示并尝试以下链接中的代码时,我得到一个ProgrammingError异常(链接中的详细信息)。

可能导致这种情况的原因是什么?我按照文档进行操作,我很困惑我做错了什么,特别是考虑到我在Windows上也使用了带有psycopg2和PostgreSQL的Django。

3 个答案:

答案 0 :(得分:6)

我使用本教程Flask Mega Tutorial

给了我很大的帮助

答案 1 :(得分:4)

当您执行create_all时,models.py从未导入,因此未声明任何类。因此,create_all不会创建任何表格。

要解决此问题,请在运行models之前导入create_all,或者更好的是,不要将db对象与模型声明分开。

答案 2 :(得分:0)

使用Flask SQLAlchemy的简单步骤:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

//employee.db database will get created in current python project

app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///employee.db'

db = SQLAlchemy(app)

class Employee(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(20))
    dept = db.Column(db.String(40))

要测试此代码,您需要运行python shell

  

在PYTHON SHELL中运行:

//This is going to create table create_all() method
from one_to_many import db
db.create_all()

//This is going to insert data into table
from one_to_many import Employee
new_emp = Employee(name="Viraj",dept="IT")
db.session.add(new_emp)
db.session.commit()

//To check or retrieve data use this 
show_all_data = Employee.query.all()
for i in show_all_data:
    print(i.id,i.name,i.dept)