当我转到以下url时,我想删除mysql数据库中的一些条目:http://127.0.0.1:8080/api/td
我有一个名为database.py的文件,它有:
engine = create_engine(config.database_uri)
def delete():
with engine.connect() as con:
con.execute("delete from INS where a = 2;")
我有一个名为init.py的文件,它有:
@app.route('/api/td', methods=["DELETE"])
def update():
database.delete()
return 'succefully'
当我去http://127.0.0.1:8080/api/td,我收到此错误:连接到时出错http://127.0.0.1:8080/api/td。
上述方法对于多个get请求非常有效。但对我的删除请求无效。两个文件都有其他代码和导入。
1条答案
按热度按时间jaxagkaj1#
原因:
当通过浏览器访问路由时,它将执行
GET
请求。所以,拜访
/api/td
仅用DELETE
方法将导致Method not allowed
错误。解决方案:
为了克服这个问题,我们需要用
GET
方法而不是DELETE
:我创建了一个虚拟应用程序来从mysql数据库表中删除一行。
app.py
:from sqlalchemy import create_engine
class Database(object):
def init(self):
# dialect+driver://username:password@host:port/database
self.engine = create_engine('mysql://root:123@localhost/practice_db')
Click==7.0
Flask==1.0.2
itsdangerous==1.1.0
Jinja2==2.10
MarkupSafe==1.1.0
mysqlclient==1.3.13
SQLAlchemy==1.2.14
Werkzeug==0.14.1