* อย่าลืมเรียกใช้ virtual environment => source venv/bin/activate
** ทดสอบบน Google App Engine จำเป็นต้องใช้งาน port 8080
1. ไปยัง directory ที่เราสร้างไว้ แล้วสร้างไฟล์ app.py ref.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World’
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080,debug=True)
ทดสอบ run
python app.py
ตัวอย่าง output
(py3) yuunai_th@yuunai-app:~/test2$ python app.py * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 130-808-004 127.0.0.1 - - [15/Jul/2017 12:51:28] "GET /?authuser=1 HTTP/1.0" 200 -
กดที่ ไอคอน ซ้ายสุด เลือก preview on port 8080 เพื่อตรวจสอบโปรแกรม
2. ปรับแต่ง app.py
@app.route()
เป็นตัวกำหนด path ที่ URL ว่าจะให้ไปเรียกใช้ function อะไร โดยวางบรรทัดก่อน function นั้น
เราสามารถ ส่งผ่าน variable มาจาก URL ได้ เช่น
@app.route('/hello/<string:name>')
def Home(name):
return ("<h1>Hello %s!! </h1>" % name)
<string:name> string คือ conversion variable เพื่อให้อยู่ใน type ที่ต้องการ
url_for('function',parameter = value)
ใช้สำหรับ redirect ไปเรียกใช้งาน function ที่เคยประกาศไว้แล้ว เหมาะสำหรับ dynamic web page
return redirect(url_for('hello_guest',guest = name))
HTTP method จาก app.route()
ใช้เป็นตัวรับ method ว่าจะให้ response แบบไหน
login.html
<html>
<body>
<form action = "http://localhost:5000/login" method = "post">
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
from flask import Flask, redirect, url_for, request
app = Flask(__name__)
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % name
@app.route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
user = request.form['nm']
return redirect(url_for('success',name = user))
else:
user = request.args.get('nm')
return redirect(url_for('success',name = user))
if __name__ == '__main__':
app.run(debug = True)
เมื่อ login.html sumit form ส่งมายัง /login , app.route จะเช็กว่าเป็น method อะไรจาก
request.method
จากตัวอย่างจะเห็นว่า ในการอ่านค่า variable
POST ใช้ request.form['nm']GET ใช้ request.args.get('nm')
ไม่มีความคิดเห็น:
แสดงความคิดเห็น