0
我在一个小网站,我想表明,插入,修改,然后从数据库中删除元素插入用的SQLite3和Python /瓶
我实现显示与该路由的数据工作的值:
@app.route('/objects')
def objects():
g.db = sqlite3.connect(db_location)
cur = g.db.execute('SELECT * FROM milkyway ORDER BY type')
objects = [dict(id=row[0], type=row[1], name=row[2], description=row[3], size=row[4], mass=row[5],distance=row[6], discoverer=row[7], image_url=row[8]) for row in cur.fetchall()]
g.db.close()
return render_template("objects.html",objects=objects)
,现在我想插入的元素,但我收到一个错误“AttributeError的:‘_AppCtxGlobals’对象有没有属性‘DB’”
@app.route('/insert_value',methods = ['POST', 'GET'])
def insert_value():
atype = request.form['type']
name = request.form['name']
description = request.form['description']
size = request.form['size']
mass = request.form['mass']
distance = request.form['distance']
discoverer = request.form['discoverer']
image_url = request.form['image_url']
g.db.execute('INSERT INTO milkyway (type,name,description,size,mass,distance,discoverer,image_ur) VALUES (?,?,?,?,?,?,?,?)', [atype], [name], [description], [size], [mass], [distance], [discoverer], [image_url])
g.db.commit()
return redirect(url_for('objects'))
我搜索无处不在b但事情是,有这么多不同的方式来做到这一点,我不能让它工作。我举例说明了这个例子; http://opentechschool.github.io/python-flask/extras/databases.html
我有另一个错误,TypeError:函数至多需要2个参数(给定9)。我认为它是因为我没有添加第一个ID。 id是autoincrement,如何将它留空以便自动执行? –
在'g.db.execute'中,'[atype,name,description,...]'不是'[atype],[name] ...'。传入语句参数列表,而不是每个参数作为自己列表中的参数。 – xli
你太棒了!最后一个问题,这些有什么好的资源?书籍,教程或例子? –