无法使用python

时间:2016-05-07 05:01:19

标签: python flask python-requests

我在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只有在你有浏览器的情况下才能工作,所以我现在该怎么办?

1 个答案:

答案 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/