简单的形式:
class AdjustPWMForm(Form):
dutyCycle = IntegerField('dutycycle')
#dutyCycle = IntegerField('dutycycle', default=44)
Run Code Online (Sandbox Code Playgroud)
查看功能:
def adjust():
user = g.user
form = AdjustPWMForm()
form.dutyCycle.data = 55
if form.validate_on_submit():
dutyCycle = form.dutyCycle.data
print('result %s', dutyCycle)
return redirect(url_for('statusPage'))
return render_template('adjust.html', title='Adjust PWM', user=user, form=form)
Run Code Online (Sandbox Code Playgroud)
提交表单时,无论输入什么,结果始终为 55。如果我注释掉 55 行,并使用 default=44 取消注释该行,则表单可以正常工作,但我确实需要能够设置预填充值(它将从数据库中检索)。
似乎我错过了一些非常明显的东西,但我四处寻找却无法弄清楚。
我发现在change_username有用的部分wtforms这使我:
def adjust():
user = g.user
form = AdjustPWMForm(dutyCycle=55)
if form.validate_on_submit():
dutyCycle = form.dutyCycle.data
return redirect(url_for('statusPage'))
return render_template('adjust.html', title='Adjust PWM', user=user, form=form)
Run Code Online (Sandbox Code Playgroud)
这是实现这一目标的最佳方式吗?
我只是不知道如何使用 aiosqlite 模块,以便我可以保持连接以备后用。
基于aiosqlite 项目页面的示例
async with aiosqlite.connect('file.db') as conn:
cursor = await conn.execute("SELECT 42;")
rows = await cursor.fetchall()
print('rows %s' % rows)
Run Code Online (Sandbox Code Playgroud)
工作正常,但我想保持连接,以便我可以在整个程序中使用它。
通常,使用 sqlite,我会打开一个连接,将其存储起来,然后在程序的整个生命周期中使用它。
我也尝试过这样的事情:
conn = aiosqlite.connect('file.db')
c = await conn.__enter__()
AttributeError: 'Connection' object has no attribute '__enter__'
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有上下文管理器的情况下使用这个模块?
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 'Checksum\t\x85\r\n'.split()
['Checksum']
Run Code Online (Sandbox Code Playgroud)
标签后面的部分在哪里?
但是,这些工作如预期的那样:
>>> 'Checksum\t\x84\r\n'.split()
['Checksum', '\x84']
>>> 'Checksum\t\x85\r\n'.split('\t')
['Checksum', '\x85\r\n']
>>> 'Checksum\t\x84\r\n'.split('\t')
['Checksum', '\x84\r\n']
Run Code Online (Sandbox Code Playgroud)
Python 3.6.6上的结果相同.
有趣的是,它在Python 2.7.10上运行良好
Python 2.7.10 (default, Aug 17 2018, 17:41:52)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 'Checksum\t\x85\r\n'.split()
['Checksum', '\x85']
>>> 'Checksum\t\x84\r\n'.split()
['Checksum', '\x84']
Run Code Online (Sandbox Code Playgroud)