无法使用python发送GET请求

问题描述:

我在javascript中执行字符串操作,然后我的后端将数据更新到数据库。无法使用python发送GET请求

简而言之,我有一个用于发送数据到后端的url,然后这个数据被发送到javascript fucntion,js操作和使用ajax请求我发送操纵字符串到后端,这更新了我的数据库。

我用的烧瓶框架

这里是我写到目前为止

#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请求以下网址

@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 '' 

现在我检查数据是否保存到数据库或不在以下url

@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只在浏览器中有效,所以我现在应该怎么做?

在请求你应该通过查询参数作为一个字典,使用params关键字:

import requests 
url = 'http://fyp-searchall.rhcloud.com/api' 
params = {'text': 'some body', 'lang': 'marathi'} 
r = requests.get(url, params=params) 

参考Quickstart这里:http://docs.python-requests.org/en/master/user/quickstart/