热点新闻
flask的HTTP方法
2023-07-06 00:12  浏览:279  搜索引擎搜索“养老服务网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在养老服务网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

python用flask框架写了个简单的增删改查例子,途中遇到点问题,就简单记录一下。
问题一:route()装饰器,可以通过method参数来指定http方法,刚开始我明明指定了method=['POST'],可是执行后,依然会报错,查看提示信息依然是GET方式。
解决:首先我们得要有个页面,渲染时默认用get来打开模板,然后在post进行传参。
如下,可以将同一个页面合并在一起写:

@app.route('/add', methods=['GET', 'POST']) def add(): # get打开页面 if request.method == 'GET': return render_template('add.html') else: # 获取表单数据 datas = request.form.to_dict() datas['time'] = time.strftime('%Y-%m-%d %H:%M:%S') sql = 'insert into message(nick,messages,create_time) Values("%s","%s","%s")' % ( datas['name'], datas['message'], datas['time']) res = con.execute_edit_sql(sql) if res: return redirect('/index') else: return redirect('/add')

也可以分开写:

@app.route('/add', methods=['GET']) def add(): return render_template('add.html') @app.route('/add', methods=['POST']) datas = request.form.to_dict() datas['time'] = time.strftime('%Y-%m-%d %H:%M:%S') sql = 'insert into message(nick,messages,create_time) Values("%s","%s","%s")' % ( datas['name'], datas['message'], datas['time']) res = con.execute_edit_sql(sql) if res: return redirect('/index') else: return redirect('/add')

问题二:封装sql语句时,执行完sql语句直接就关闭了数据库连接,导致不能连续打开接口,导致数据库报错

# 源代码 def execute_select_sql(self, sql): self.cursor.execute(sql) data = self.cursor.fetchall() self.con.commit() #self.cursor.close() #self.con.close() return data

解决:注释掉关闭连接的语句,主代码直接调用一次即可

request.form.to_dict() :获取表单数据并转化成数据字典
request.args.get('id') :获取地址栏?号后的id参数

发布人:8b8a****    IP:117.173.23.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发