【问题标题】:Database Entry not Happening in Flask App with SQL Alchemy?使用 SQL Alchemy 在 Flask App 中没有发生数据库条目?
【发布时间】:2015-01-17 00:36:36
【问题描述】:

APP 代码:数据库中没有条目,我是 Flask 的新手,我无法连接到数据库并进入它,我很困惑我的代码根本就是对了

from flask import *
from wtforms import *
from wtforms.validators import Required
from flask.ext.wtf import Form
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.secret_key = 'MY CSI FORM'

branch_choices = [('CSE','CSE'),('ECE','ECE'),('MEC','MEC'),('CIVIL','CIVIL')]
year_choices = [('1st','1st'),('2nd','2nd'),('3rd','3rd'),('4th','4th')]
cmem_choices = [('Yes','Yes'),('No','No')]

class CSIForm(Form):
    er = IntegerField('Enrollment No',validators=[Required()])
    name = StringField('Name', validators=[Required()])
    branch = SelectField('Branch',choices=branch_choices, validators=[Required()])
    year = SelectField('Year',choices=year_choices, validators=[Required()])
    cmem = SelectField('CSI Member',choices=cmem_choices,validators=[Required()])
    sop = TextAreaField('Statement of Purpose', validators=[Required()])
    submit = SubmitField('Submit')

数据库代码:SQLAlchemy 中创建数据库的代码不知道其正确与否

db = SQLAlchemy(app)

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

class CSI(db.Model):
    __tablename__ = 'form'

    er = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    branch = db.Column(db.String(3))
    year = db.Column(db.String(3))
    cmem = db.Column(db.String(3))
    sop = db.Column(db.String(50))

    def __init__(self, er, name, branch, year, cmem, sop):
        self.er = er
        self.name = name
        self.branch = branch
        self.year = year
        self.cmem = cmem
        self.sop = sop

def connect_db():
    db.create_all()

应用运行和连接

@app.route('/', methods=['GET', 'POST'])
def index():
    form=CSIForm(request.form)
    connect_db()
    if form.validate_on_submit():
        csi = CSI()
        form.populate_obj(csi)
        flash('Thanks for registering')
    return render_template('form.html',form=form)

if __name__ == "__main__":
    app.debug='True'
    app.run()

【问题讨论】:

    标签: python flask flask-sqlalchemy


    【解决方案1】:

    您可能想阅读sessions in SQLAlchemy。您需要将csi 添加到当前会话并提交事务。

    def index():
        form = CSIForm(request.form)
        connect_db()
        if form.validate_on_submit():
            csi = CSI()
            form.populate_obj(csi)
    
            # These lines are new.
            db.session.add(csi)
            db.session.commit()
    
            flash('Thanks for registering')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      相关资源
      最近更新 更多