python - 将 HTML 表单中的空输入转换为 Flask 中的 None 以在 PostgreSQL 中将它们存储为 NULL
问题描述
我有一个 HTML 表单,我在 Flask 应用程序中处理请求。如果某些输入是空字符串,我想将它们转换为None
值,所以我可以NULLs
通过 SQLAlchamy 将它们存储在 PostgreSQL 数据库中。
到目前为止,唯一有效的方法如下:
# convert empty strings to None
if parts == "":
parts = None
if car_model == "":
car_model = None
if item_count == "":
item_count = None
# save to db
sale = Sales(date=date, parts=parts, car_model=car_model,
item_count=item_count, value=value)
有没有更优雅的方法来做到这一点?我尝试了一些东西,但没有成功。
我读到您可以在None
从表单获取输入时指定值:
parts = request.form.get('parts', None)
我还尝试创建一个数组,然后循环遍历它。问题是原始变量没有改变,集合中的变量是。
s = [parts, car_model, item_count)
for i, item in enumerate(s):
if item == "":
s[i] = None
如果我有更多变量,为每个变量创建一个 if 语句将是低效的。有没有更有效,更蟒蛇的方式?
解决方案
你可以做:
parts = request.form.get('Parts') or None
或者
parts = request.form['Parts'] or None
如果“零件”一开始就没有出现在表格中,它仍然会返回 400。
如果Parts
表单中的 是一个空字符串,它将确保parts
变量变为None
.
控制台示例:
>>> print('' or None)
None
>>> print('hello' or None)
hello
推荐阅读
- google-play - 我可以跟踪 Playstore 中应用程序的下载次数吗?
- microsoft-cognitive - Azure 认知服务 - 无法在表单识别器中选择位置或定价层
- computer-vision - 有什么方法可以反转赏金框坐标外部的背景。使用蟒蛇?
- r - 读取不同长度的记录
- android - Razorpay 在付款页面上崩溃,在颤动中找不到类“com.razorpay.d__1_”
- android - jpeg回调超时!使用 Camera2 api
- html - 如何使用 CSS 旋转四列?
- python - 在熊猫数据框中连接两个系列的更快方法
- amazon-s3 - 如何在不下载 google-colaboratory 中的图像的情况下直接从 amazon s3 存储桶读取图像到 google-colaboratory
- java - 如何操作 SQL IN 运算符以返回所有值作为结果