python - flask postgresql 错误:在或附近出现语法错误“
问题描述
我是烧瓶和开发的新手,一般来说,这个错误是如此主观,即使在看到 stackoverflow 上的几篇帖子后,我也无法谷歌搜索,我无法弄清楚一切都是正确的,实际上我正在拉扯我的头发
@app.route("/bookPage/<all>" , methods=["GET" , "POST"])
def bookPage(all):
global all2
if request.method == "POST":
#variables
list1 = ['101','milk','3','jack','2018-09-27 16:33:58.553349' ]
db.execute("INSERT INTO review_table (id, review, rate , user , time_t) VALUES (:id, :review, :rate , :user , :time_t)" , {"id" : list1[0], "review" : list1[1], "rate": list1[2] ,"user":list1[3] , "time_t" :list1[4] })
db.commit()
print( f"review has been added of value : ,{review} \n ,and rate of : , { rate_i} ,\n , by user : , { user_i }, \n, and Id : , {id_i}" )
else:
print("\n\n",all,"\n\n")
all1 = all.split(",")
all2 =[a.strip("()").replace("'","") for a in all1]
return render_template("bookPage.html",all1=all2)
每次我执行它时,我都会收到此错误(错误:“用户”处或附近的语法错误)他指向“用户”
"INSERT INTO review_table (id, review, rate , user , time_t)
一切都正确,我是 nw,但我已经多次执行 db
db 中的表是空的 postgresql 列
列类型注释
id 整数
审查字符变化 NULL
速率整数 NULL
用户字符变化 NULL
time_t 没有时区的时间 NULL
请让我知道为什么这种情况不断发生
解决方案
在将值发送到数据库之前,您需要将它们转换为正确的类型。
user_i = ''
rate_i = request.form.get("rate", type=int)
user_i = session['user']
time_i = datetime.now()
id_i = int(all2[0])
db.execute("INSERT INTO review_table (id, review, rate , user , time_t) VALUES (?, ?, ? , ? , ?)" , (id_i, review_i, rate_i , user_i , time_i ))
推荐阅读
- javascript - jquery 检查父元素中是否有特定的文本,如果有,则在特定的预先存在的子元素之后添加子元素
- vb.net - VB.NET 在图片框中绘制与设备无关的位图
- python - 如何处理依赖的多个主要版本
- javascript - 交换两个 ngx-select 的值
- c - S32K146EVB 擦除/写入闪存时发生读取冲突
- json - 如何在pyspark中将rdd转换为嵌套的json
- php - 大型 php 站点地图(使用数据库连接)可以减慢/阻塞服务器吗?
- excel - 将 Excel 电子表格数据导入另一个 Excel 电子表格 - 然后移至下一行
- gekko - 使用“过去”值定义 GEKKO 方程中的当前值
- macos - 在 mac 上安装 ubuntu 的问题