Run Web App ง่ายๆ ด้วย Python

Mister Nay
2 min readDec 17, 2017

--

หลังจากได้เรียนคลาส 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

ขอบคุณครับ

--

--

No responses yet