2012-10-03 19 views
6

Nhìn vào mặc định "Hello world" kịch bản trên trang web Flask của:Trong Flask, tại sao ứng dụng Hello World này hoạt động?

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 

Tôi rất mới để lập trình, vì vậy tôi không hiểu làm thế nào kịch bản này có thể làm việc - các hello() chức năng không được gọi bất cứ nơi nào , Flask có thể hiển thị đầu ra của hàm đầu tiên được tìm thấy không? Điều gì sẽ xảy ra nếu tôi muốn hiển thị kết quả đầu ra từ hai hoặc ba chức năng trên trang?

+2

Cũng nhớ rằng app.run() gọi những gì là một máy chủ web phát triển rất đơn giản để chạy kịch bản của bạn, và decorator app.route ("/") hoạt động cùng với máy chủ. Vì vậy, để mở rộng về những gì Lewis đã nói: Flask có rất nhiều mã "dưới mui xe" để làm cho kịch bản làm việc, và nó không phải là tất cả có thể nhìn thấy trong kịch bản mẫu. – abought

Trả lời

10

Đường này: @app.route("/") sẽ đăng ký chức năng làm trình xử lý cho tuyến đường '/'. Khi trình duyệt truy vấn '/' (gốc), ứng dụng sẽ trả lời "Hello World!".

Cú pháp @ được gọi là Trang trí.

How to make a chain of function decorators?

1

hãy nhìn vào mã này ví dụ:

def decorator(func): 
    print "this function is called for " + func 
    def wrapper(*args, **kwargs): 
      return func(*args, **kwargs) 
    return wrapper 

@decorator 
def hello(): 
    return "Hello" 

Lưu nó vào một tập tin và thử nó, bạn sẽ thấy rằng sau khi xác định chào bạn nhìn thấy một cái gì đó như thế này:

chức năng này được gọi cho hàm < hello tại 0x241c70>