2015-09-19 25 views
6

Ok vì vậy tôi mới vào bình, và muốn biết những gì các đối tượng hoặc công cụ tôi sẽ sử dụng để làm điều này. Tôi muốn tạo biểu mẫu, trong đó người dùng nhập một số văn bản, nhấp vào nút gửi, sau đó văn bản họ gửi bị ràng buộc dưới dạng chuỗi python và có chức năng chạy trên đó, sau đó văn bản đó được đăng lại trên web trang họ đang xem với giá trị trả về của hàm đó mà nó đã trải qua. Dưới đây là một ví dụ: hình thứcLàm thế nào để xây dựng một hình thức nhận được trong bình

html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
<form action = "/" method="get"> 
    <input type="text" name="mail" size="25"> 
    <input type="submit" value="Submit"> 
</form> 

<textarea cols="50" rows="4" name="result"></textarea> 

</body> 
</html> 

Sau đó, đây là những gì tôi tin rằng nên là chức năng url nên trông giống như

@app.route('/', methods=['GET', 'POST']) 
    def form(): 
     if request.method == 'GET': 
      input_text = request.data #step to bind form text to python string 
       new_text = textfunction(input_text) #running the function on the retrieved test. 
       return (new_text) # no idea if this is write, but returns text after modification. 

Điều gì sẽ là cách tốt nhất để thiết lập này lên ? Nó sẽ là chính xác để đặt một biến làm giá trị cho html đầu vào? Cần một số trợ giúp về điều này.

Trả lời

8

Về cơ bản, những gì bạn muốn làm là có một khối trong mẫu của bạn chỉ được bao gồm nếu biến có giá trị được đặt. Xem ví dụ sau

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
<form action = "/" method="get"> 
    <input type="text" name="mail" size="25"> 
    <input type="submit" value="Submit"> 
</form> 

{% if result %} 
<textarea cols="50" rows="4" name="result">{{ result }}</textarea> 
{% endif %} 

</body> 
</html> 

và sau đó trong mã python của bạn

@app.route('/', methods=['GET', 'POST']) 
def index(result=None): 
    if request.args.get('mail', None): 
     result = process_text(request.args['mail']) 
    return render_template('index.html', result=result) 


def process_text(text): 
    return "FOO" + text 
+0

Cảm ơn bạn rất nhiều! một câu hỏi nhanh, không có vị trí nào trong đó trong request.args.get ('mail', None)? –

+0

request.args.get ('mail', None) sẽ trả về giá trị của 'mail' trong dict nếu nó được đặt, nếu không nó sẽ trả về None là falsey. request.args là một mệnh đề của các tham số truy vấn trong một yêu cầu nhận được –

Các vấn đề liên quan