从HTML获取搜索参数到Python Flask函数

时间:2019-04-15 14:13:57

标签: python html ajax python-twitter

flask和ajax相当新,想知道我是否可以得到一些帮助。我正在使用python-twitter,希望能够输入一个搜索参数,它将在Twitter上搜索所需的一个或多个单词。

我尝试了多种解决方案,我的朋友和我都看不出问题出在哪里。我可以看到搜索变量是通过console.log存储在ajax中的,但是我无法将其转移到将搜索该变量的twitter函数上。

这是我的ajax:

            $('#form').on('submit', function(e){
                var search = $('#search').val();
                e.preventDefault();
                $.ajax({
                    url: '/twitter',
                    data: {'search': search},
                    method: 'Get',
                    success: function(result) {
                        // twit(data)
                        console.log(search)
                    }
                });
            });

和我的Twit()根据要求

@app.route('/twitter', methods=['GET', 'POST'])
def twit():

    tempo =  request.form['search']
    searched = "Yes"
    searched = request.args.get('search1')
    # searched = request.form.get('number')
    print(searched, file=sys.stderr)

    api = twitter.Api(\
            consumer_key='TWVxfrliliibQxjNWz4tAlDIj',
            consumer_secret='QK2IBqNorysgD3quaBJVCMDdMApOpo5fW5g6Pl4Di97ToRjsGy',
            access_token_key='3011394611-QmeEQ5yaL6OJTOmqemXV3eS0DpE09P0sy64XhnL',
            access_token_secret='tEMygLkKBDwfVepHAg7G9BI7N8VQJM7U9KKefpV40jUq1'
        )
    count = "10"
    data = api.GetSearch(
    raw_query=  'q='+str(searched)+'&'
                'count='+str(count)+'&'
                'lang=en&'
                'tweet_mode=extended&'
                #'geocode=51.4027029,-0.3040634,10mi' #kington
    )

    print(data)
    for i in data:
        print('---------------------------')
        if hasattr(i, 'retweeted_status'):
            print(i.user.name + ': ' +  i.full_text)
        else:
            print(i.user.name + ': ' +  i.retweeted_status.full_text)

    return(render_template('Twitter.html', d=data))

if __name__ == '__main__':
    app.run(debug=True) 

这是表格

                    <form method="get" id="form">
                            <label for="search">Enter Search Parameter : </label>
                            <input type="text" id="search" name="search" autofocus autocomplete="off">
                            <button>Post</button>
                    </form>

应该使用搜索到的术语来更新页面。

很抱歉有一个很明显的错误

0 个答案:

没有答案