在输入页面上写下我想要搜索的单词和单词内的字母后,它会转到/search4,并且我在页面上收到错误mysql.connector.errors.ProgrammingError: 检查这里的代码后,光标未连接。from flask import Flask, render_template, request, escapefrom vsearch import search4lettersfrom DBcm import UseDatabaseapp = Flask(__name__)app.config['dbconfig'] = {'host': '127.0.0.1', 'user': 'vsearch', 'password': 'vsearchpasswd', 'database': 'vsearchlogDB', }def log_request(req: 'flask_request', res: str) -> None: with UseDatabase(app.config['dbconfig']) as cursor: _SQL = """insert into log (phrase, letters, ip, browser_string, results) values (%s, %s, %s, %s, %s)""" cursor.execute(_SQL, (req.form['phrase'], req.form['letters'], req.remote_addr, req.user_agent.browser, res, ))@app.route('/search4', methods=['POST'])def do_search() -> 'html': phrase = request.form['phrase'] letters = request.form['letters'] title = 'Here are your results:' results = str(search4letters(phrase, letters)) log_request(request, results) return render_template('results.html', the_title=title, the_phrase=phrase, the_letters=letters, the_results=results,)@app.route('/')@app.route('/entry')def entry_page() -> 'html': return render_template('entry.html', the_title='Welcome to search4letters on the web!')
1 回答
![?](http://img1.sycdn.imooc.com/54584e1f0001bec502200220-100-100.jpg)
冉冉说
TA贡献1877条经验 获得超1个赞
调用cursor.execute应该在with块内,因为cursor仅存在于该块内。
这实际上是一个缺失的缩进:
def log_request(req: 'flask_request', res: str) -> None:
with UseDatabase(app.config['dbconfig']) as cursor:
_SQL = """insert into log
(phrase, letters, ip, browser_string, results)
values
(%s, %s, %s, %s, %s)"""
cursor.execute(_SQL, (req.form['phrase'],
req.form['letters'],
req.remote_addr,
req.user_agent.browser,
res, ))
添加回答
举报
0/150
提交
取消