2017-10-21 3 views
-3

ユーザーがテキストフィールドにURLを入力する必要のあるWebページをhtmlで作成しようとしています。フォームをFlaskアプリケーションに送信するとき

<form name="submitURL" method ="post"> 
<input type="text" name="url_target"> 
<button type="submit">submit</button> 

すると、ユーザーを押して送信ボタンPythonスクリプトは、ユーザによって挿入されたデータを傍受して、このスクリプト内の別の関数に渡す必要があります。

Pythonスクリプト:

from flask import Flask, render_template, request 

app = Flask(__name__) 

@app.route('/') 
def indhtml() : 
    return render_template('index.html') 

@app.route('/index.html', methods = ['POST']) 
def result(): 
    result = request.form('url_target') 
    link = result.link 
    print (link) 
    return 

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

最初のレンダリングは結構ですし、私はindex.htmlページを見ることができますが、私はテキストフィールドに何かを挿入すると405

はあなたが持っていますかエラーHTTPに表示されますそれのための任意の提案? :( ありがとう!

+1

これはDjangoではなくFlaskです。 –

+0

ダニエル注釈をありがとう、私はこれらの日を学んでいると私は書いている間に混乱しました:) – ySlag

答えて

1

あなたはPOSTリクエストを受け付けていません同じページにフォームを送信しているので、あなたは、あなたの<form>タグでaction="{{ url_for('result') }}"を忘れてしまった。

さらに、 、request.formはdict-likeなので、[]ではなく()にアクセスする必要があります。linkの文字列に属性が存在しないため、link = result.linkも失敗しますrequest.form ...

+0

ありがとうございました:) – ySlag

1

あなたの機能result()戻り値なし。

+0

ポイントは、私は..私は、将来、関数はURLを返しますが、私は返すものを追加します – ySlag

関連する問題