Run Web App ง่ายๆ ด้วย Python
หลังจากได้เรียนคลาส Data Science week 3 ไป ได้เรียนรู้เกี่ยวกับ Web App โดยใช้ Lib ในการรันคือ Flask ซึ่งจะคล้ายๆ Apache Jboss Springboost ที่ทำหน้าที่ Deploy เหมือนกัน
มาเริ่มกันเลย โดยเราจะทำเว็บ Hello World แบบง่ายๆก่อนนะครับ
อันดับแรก ลง Lib ก่อนนะครับ
— > pip install Flask
เมื่อลงเสร็จ เรามาลองเขียนแบบง่ายๆก่อนนะครับ
Coding:
from flask import Flask #import ตัวLib มาใช้นะครับ
app = Flask('ABC') #ตั้งชื่อ App นะครับ
@app.route('/') #เป็น path ที่ต้องการให้เรียกใช้นะครับ
def hello():
return 'Hello World' #ส่วนที่ต้องการแสดงผลออกไป
app.run() #default Host จะรันที่ 127.0.0.1:5000
Output:
ง่ายมั้ยครับ ส่วนของ Return สามารถ Return Tag Html ไปได้เลยนะครับ
เช่น จะจัดกลาง + เพิ่มขนาดฟอนท์
Coding:
from flask import Flask
app = Flask('ABC')
@app.route('/')
def hello():
return '<center>' \
'<h1 style="font-size:100px">' \
'Hello World' \
'</center>' \
'</h1>'
app.run()
Output:
ง่ายมั้ยครับ แต่ถ้าจะมายัดโค๊ดใส่ Return ก็คงตายพอดี Flask เลยแก้ปัญหาโดย การ Render_Template ขึ้นมา ก็คือการอ่านโค๊ดจาก External นั่นเอง
การทำก็ง่ายๆเลย
เพิ่มการ Import render_template เข้ามา
from flask import Flask, render_template
จากนั้น สร้างโฟลเดอร์ “templates”
แล้วสร้างไฟล์ “index.html” ไว้ข้างใน
ตัวอย่าง Src index.html :
credit boostrap w3school
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Vertical (basic) form</h2>
<form action="/action_page.php">
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" placeholder="Enter email" name="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" placeholder="Enter password" name="pwd">
</div>
<div class="checkbox">
<label><input type="checkbox" name="remember"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</body>
</html>
Coding:
from flask import Flask, render_template
app = Flask('ABC')
@app.route('/')
def hello():
return render_template('index.html')
app.run()
แค่เปลี่ยนจุด Return เป็น render_template แค่นั้นเองก็จะได้หน้าเว็บเรามาละ
ง่ายมั้ยละครับ วั้นนี้ก็ฝากไว้เท่านี้ก่อนนะครับ
สามารถอ่านเพิ่มเติมได้ที่ Flask
ขอบคุณครับ