Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x FLASK:即使执行已提交,表单中输入的新值也不会插入到数据库中 来自flask导入flask、jsonify、请求、url\u for、重定向、会话、呈现模板、g 导入sqlite3 app=烧瓶(名称) app.config['DATABASE']='./data.db' def connect_db(): path=r“C:\Users\Arjun\Documents\flask\u app\data.db” sql=sqlite3.connect(路径) sql.row\u factory=sqlite3.row 返回sql def get_db(): 如果不是hasattr(g,'sqlite3'): g、 sqlite_db=connect_db() 返回g.sqlite_db @app.teardown_appcontext def close_db(错误): 如果hasattr(g,'sqlite_db'): g、 sqlite_db.close() @app.route('/home',defaults={'name':'Default'}) @app.route(“/home/”) def home(姓名): 会话['name']=名称 返回render_模板('home.html',name=name,display=False,mylist=[1,2,3,4] @app.route('/theform5',methods=['GET','POST']) def theform5(): 如果request.method==“GET”: 返回呈现模板('form.html') 其他: name=请求。表单['name'] 位置=请求。表单['location'] db=get_db() db.execute(“插入用户(名称、位置)值(?,)”,[name,location]) db.commit() 返回重定向(url_表示('home',name=name,location=location)) @app.route(“/viewresults”) def viewresults(): db=get_db() cur=db.execute('select id,name,location from users') 结果=cur.fetchall() return'ID为{}。Name为{}。位置为{}。format(results[1]['ID'],results[1] ['name'],结果[1]['location'])_Python 3.x_Sqlite_Flask - Fatal编程技术网

Python 3.x FLASK:即使执行已提交,表单中输入的新值也不会插入到数据库中 来自flask导入flask、jsonify、请求、url\u for、重定向、会话、呈现模板、g 导入sqlite3 app=烧瓶(名称) app.config['DATABASE']='./data.db' def connect_db(): path=r“C:\Users\Arjun\Documents\flask\u app\data.db” sql=sqlite3.connect(路径) sql.row\u factory=sqlite3.row 返回sql def get_db(): 如果不是hasattr(g,'sqlite3'): g、 sqlite_db=connect_db() 返回g.sqlite_db @app.teardown_appcontext def close_db(错误): 如果hasattr(g,'sqlite_db'): g、 sqlite_db.close() @app.route('/home',defaults={'name':'Default'}) @app.route(“/home/”) def home(姓名): 会话['name']=名称 返回render_模板('home.html',name=name,display=False,mylist=[1,2,3,4] @app.route('/theform5',methods=['GET','POST']) def theform5(): 如果request.method==“GET”: 返回呈现模板('form.html') 其他: name=请求。表单['name'] 位置=请求。表单['location'] db=get_db() db.execute(“插入用户(名称、位置)值(?,)”,[name,location]) db.commit() 返回重定向(url_表示('home',name=name,location=location)) @app.route(“/viewresults”) def viewresults(): db=get_db() cur=db.execute('select id,name,location from users') 结果=cur.fetchall() return'ID为{}。Name为{}。位置为{}。format(results[1]['ID'],results[1] ['name'],结果[1]['location'])

Python 3.x FLASK:即使执行已提交,表单中输入的新值也不会插入到数据库中 来自flask导入flask、jsonify、请求、url\u for、重定向、会话、呈现模板、g 导入sqlite3 app=烧瓶(名称) app.config['DATABASE']='./data.db' def connect_db(): path=r“C:\Users\Arjun\Documents\flask\u app\data.db” sql=sqlite3.connect(路径) sql.row\u factory=sqlite3.row 返回sql def get_db(): 如果不是hasattr(g,'sqlite3'): g、 sqlite_db=connect_db() 返回g.sqlite_db @app.teardown_appcontext def close_db(错误): 如果hasattr(g,'sqlite_db'): g、 sqlite_db.close() @app.route('/home',defaults={'name':'Default'}) @app.route(“/home/”) def home(姓名): 会话['name']=名称 返回render_模板('home.html',name=name,display=False,mylist=[1,2,3,4] @app.route('/theform5',methods=['GET','POST']) def theform5(): 如果request.method==“GET”: 返回呈现模板('form.html') 其他: name=请求。表单['name'] 位置=请求。表单['location'] db=get_db() db.execute(“插入用户(名称、位置)值(?,)”,[name,location]) db.commit() 返回重定向(url_表示('home',name=name,location=location)) @app.route(“/viewresults”) def viewresults(): db=get_db() cur=db.execute('select id,name,location from users') 结果=cur.fetchall() return'ID为{}。Name为{}。位置为{}。format(results[1]['ID'],results[1] ['name'],结果[1]['location']),python-3.x,sqlite,flask,Python 3.x,Sqlite,Flask,错误: 返回“ID为{}。名称为{}。位置为{}”。格式(结果[1]['ID'],结果[1]['Name'],结果[1]['location'])) 索引器:列表索引超出范围 虽然可以通过终端直接编辑表格,但在运行flask web app时无法编辑表格 浏览器:Chrome SQLite:v3.30.1 Python:v3.8.1 烧瓶:v1.1.1 您的home函数中的return语句出现语法错误。结尾处缺少“')。要运行db.execute,您必须首先设置光标: db=get_db()

错误:

返回“ID为{}。名称为{}。位置为{}”。格式(结果[1]['ID'],结果[1]['Name'],结果[1]['location']))

索引器:列表索引超出范围

虽然可以通过终端直接编辑表格,但在运行flask web app时无法编辑表格

  • 浏览器:Chrome
  • SQLite:v3.30.1
  • Python:v3.8.1
  • 烧瓶:v1.1.1

您的home函数中的return语句出现语法错误。结尾处缺少“')。

要运行db.execute,您必须首先设置光标:

db=get_db()

cursor=db.cursor()

cursor.execute(“插入用户(名称、位置)值(?,)”,[name,location])

此外,可能您的语法已关闭,请尝试以下操作:

cursor.execute(“插入用户值('%s','%s')”%)(名称,位置))

from flask import Flask, jsonify, request, url_for, redirect, session, render_template, g
import sqlite3

app = Flask(__name__)
app.config['DATABASE'] = './data.db'

def connect_db():
    path = r"C:\Users\Arjun\Documents\flask_app\data.db"
    sql = sqlite3.connect(path)
    sql.row_factory = sqlite3.Row
    return sql

def get_db():
    if not hasattr(g, 'sqlite3'):
        g.sqlite_db = connect_db()
    return g.sqlite_db

@app.teardown_appcontext
def close_db(error):
    if hasattr(g, 'sqlite_db'):
        g.sqlite_db.close()

@app.route('/home', defaults={'name':'Default'})
@app.route('/home/<name>')
def home(name):
    session['name'] = name
    return render_template('home.html', name=name, display = False, mylist = [1,2,3,4]

@app.route('/theform5', methods=['GET', 'POST'])
def theform5():
    if request.method == 'GET':
        return render_template('form.html')
    else:
        name = request.form['name']
        location = request.form['location']

        db = get_db()
        db.execute("insert into users (name, location) values (?, ?)", [name, location])
        db.commit()

        return redirect(url_for('home', name=name, location=location))

@app.route('/viewresults')
def viewresults():
    db = get_db()
    cur = db.execute('select id, name, location from users')
    results = cur.fetchall()
    return 'The ID is {}. Name is {}. The location is {}. '.format(results[1]['id'], results[1] 
            ['name'], results[1]['location'])