尝试在Windows上设置Flask和SQLAlchemy,但我遇到了问题。
我一直在使用Flask-SQLAlchemy以及PostgreSQL 9.1.4(32位)和Psycopg2包。以下是代码的相关部分,我创建了一个基本的用户模型,用于测试我的数据库是否正在连接和提交。
代码的三位代码来自我的应用程序的__init__.py
文件,models.py
文件和我的settings.py
文件。
当我尝试打开我的交互式提示并尝试以下链接中的代码时,我得到一个ProgrammingError异常(链接中的详细信息)。
可能导致这种情况的原因是什么?我按照文档进行操作,我很困惑我做错了什么,特别是考虑到我在Windows上也使用了带有psycopg2和PostgreSQL的Django。
答案 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)