python get请求 url传参_如何在python flask(restplus)中的GET请求中将URL作为参数传递?...

I am creating a REST API using python flask. The API is ready and works on port number 8000 of my localhost. Now I intend to give this REST API a user friendly interface for which I decided to go with python - restplus. I thought of calling this service (running on 8000) internally from swagger application running on 5000

I was able to create the basic structure of the API (Swagger). The code for which looks like this:

import flask

from flask import Flask, request

from flask_restplus import Resource, Api

app = Flask(__name__)

api = Api(app)

@api.route('/HybridComparator//')

class HybridComparator(Resource):

def get(self, url1, url2):

print(url1)

print(url2)

return url1 + ' ' + url2

if __name__ == '__main__':

app.run(debug=True)

The application as a whole runs seamlessly (with random strings as parameters) on port 5000. But when the URLs I pass are actual links, the application returns a response of 404 - Not found. Further to my investigation I realized the culprit being '/' embedded within the links I try to provide. Is there a way to handle URLs in particular?

Should I encode them before sending a request. (This will make my parameters look ugly). Is there something I am missing?

解决方案

This is an entirely old question and I am sure you solved your problem by now.

But for new searchers, this may come in handy;

replace / with /

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在Flask应用程序安装必要的库,如`mysql-connector-python`,用于与MySQL数据库进行通信。你可以使用以下命令安装它: ``` pip install mysql-connector-python ``` 接下来,你需要在Flask应用程序设置数据库连接。你可以使用以下代码创建一个MySQL数据库连接: ```python import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) ``` 请确保将`yourusername`,`yourpassword`和`yourdatabase`替换为你的MySQL数据库的用户名,密码和数据库名称。 然后,你需要编写一个Flask路由,该路由将接收GET请求并将数据插入MySQL数据库。这可以使用以下代码完成: ```python from flask import Flask, request import mysql.connector app = Flask(__name__) mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) @app.route('/insert_data', methods=['GET']) def insert_data(): data = request.args.get('data') mycursor = mydb.cursor() sql = "INSERT INTO table (column) VALUES (%s)" val = (data,) mycursor.execute(sql, val) mydb.commit() return "Data inserted successfully" if __name__ == '__main__': app.run() ``` 在这个例子,我们创建了一个名为`insert_data`的Flask路由,它将接收一个名为`data`的GET参数,并将其插入到名为`table`的MySQL表的名为`column`的列。在插入数据之后,我们调用`commit()`方法来提交更改。 最后,你可以编写另一个Flask路由,该路由将从MySQL数据库检索数据并将其呈现在网站上。这可以使用以下代码完成: ```python from flask import Flask import mysql.connector app = Flask(__name__) mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) @app.route('/') def show_data(): mycursor = mydb.cursor() mycursor.execute("SELECT * FROM table") data = mycursor.fetchall() return str(data) if __name__ == '__main__': app.run() ``` 在这个例子,我们创建了一个名为`show_data`的Flask路由,它将从MySQL数据库检索所有数据,并将其呈现为字符串形式。在这种情况下,我们只是将数据打印出来,但你可以使用模板引擎来更好地呈现它们。 这是一个完整的示例,它将设置Flask应用程序并将数据插入到MySQL数据库,然后从数据库检索并呈现数据: ```python from flask import Flask, request import mysql.connector app = Flask(__name__) mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) @app.route('/insert_data', methods=['GET']) def insert_data(): data = request.args.get('data') mycursor = mydb.cursor() sql = "INSERT INTO table (column) VALUES (%s)" val = (data,) mycursor.execute(sql, val) mydb.commit() return "Data inserted successfully" @app.route('/') def show_data(): mycursor = mydb.cursor() mycursor.execute("SELECT * FROM table") data = mycursor.fetchall() return str(data) if __name__ == '__main__': app.run() ``` 请注意,这只是一个简单的示例,仅用于演示如何将数据插入MySQL数据库并从数据库检索数据。在实际应用,你需要考虑安全性和数据验证等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值