我在javascript中有一些函数执行字符串操作,然后我的后端将数据更新到数据库。
简而言之,我有一个用于向后端发送数据的URL,然后将此数据发送到javascript fucntion,js执行操作并使用ajax请求将操作的字符串发送到后端,后端更新我的数据库。
我正在使用flask框架
这是我到现在为止所写的内容
#this url is where I send a GET request
@app.route('/api',methods=['GET'])
def text():
text = request.args.get('text','')
lang = request.args.get('lang','')
return render_template('test.html',text=text,lang=lang)
现在JS对字符串进行操作并将ajax GET请求发送到以下url
@app.route('/files/<text>',methods=['GET'])
def fi(text):
if request.method == 'GET':
textValue = text.encode("utf-8")
INSERT_DB = 'INSERT INTO text (text) VALUES (%s)'
db = connect_mysql()
cursor = db.cursor()
cursor.execute(INSERT_DB,[textValue])
db.commit()
cursor.close()
db.close()
return ''
现在我在以下网址
中检查数据是否保存到数据库@app.route('/test',methods=['GET'])
def test():
if request.method == 'GET':
db_select_last = "SELECT text FROM text order by id DESC limit 1"
db = connect_mysql()
cursor = db.cursor()
cursor.execute(db_select_last)
data = cursor.fetchone()
cursor.close()
db.close()
return (data['text'])
但是我面临的问题是当我从浏览器手动点击URL时它会更新数据。但是当我从python发送GET请求时却没有。为什么会如此。
以下是我向该网址发送GET请求的方式
main_url是http://fyp-searchall.rhcloud.com/
>>> import requests
>>> url = 'http://fyp-searchall.rhcloud.com/api?text=some body&lang=marathi'
>>> r = requests.get(url)
但数据不会更新。我在哪里做错了?
我知道JS只有在你有浏览器的情况下才能工作,所以我现在该怎么办?
答案 0 :(得分:0)
在请求中,您应使用params
关键字将查询参数作为字典传递:
import requests
url = 'http://fyp-searchall.rhcloud.com/api'
params = {'text': 'some body', 'lang': 'marathi'}
r = requests.get(url, params=params)
请参阅此处的快速入门:http://docs.python-requests.org/en/master/user/quickstart/