
สอนทำเว็บไซต์ด้วย Python Flask: พื้นฐานและโปรเจคจริง
Python Flask เป็นหนึ่งในเฟรมเวิร์กสำหรับการพัฒนาเว็บแอปพลิเคชันที่ได้รับความนิยมอย่างสูง เนื่องจากความเรียบง่ายและความยืดหยุ่นในการพัฒนา สำหรับมือใหม่ที่ต้องการเรียนรู้วิธีการสอนทำเว็บไซต์ด้วย Python Flask บทความนี้จะพาคุณไปเรียนรู้พื้นฐานการใช้งาน Flask และการสร้างโปรเจคจริงที่สามารถนำไปใช้ได้จริง
1. ทำความรู้จักกับ Flask
Flask เป็น ไมโครเฟรมเวิร์ก (Microframework) สำหรับการพัฒนาเว็บแอปพลิเคชันในภาษา Python ซึ่งแตกต่างจากเฟรมเวิร์กอื่นๆ เช่น Django ที่มักจะมีฟังก์ชันมากมายให้ใช้งานในตัว Flask มุ่งเน้นไปที่การให้เครื่องมือพื้นฐานที่สุดที่จำเป็นสำหรับการสร้างเว็บแอปพลิเคชัน
ข้อดีของ Flask:
- เรียบง่าย: Flask มีขนาดเล็กและเรียนรู้ได้ง่าย
- ยืดหยุ่น: สามารถปรับแต่งและขยายฟังก์ชันตามความต้องการ
- แนะนำสำหรับผู้เริ่มต้น: เหมาะสำหรับมือใหม่ที่ต้องการเรียนรู้วิธีสร้างเว็บแอป
2. การติดตั้ง Python และ Flask
ก่อนที่จะเริ่มพัฒนาเว็บไซต์ด้วย Flask คุณต้องติดตั้ง Python และ Flask บนคอมพิวเตอร์ของคุณก่อน
ขั้นตอนการติดตั้ง:
- ติดตั้ง Python: ดาวน์โหลดและติดตั้ง Python จากเว็บไซต์ทางการ Python.org
- ติดตั้ง Flask: ใช้คำสั่งนี้ในคอมมานด์ไลน์เพื่อให้แน่ใจว่า Flask ได้รับการติดตั้งแล้ว:bash
pip install Flask
ตรวจสอบการติดตั้ง Flask:
หลังจากติดตั้ง Flask แล้ว คุณสามารถตรวจสอบการติดตั้งด้วยคำสั่ง:
python -m flask --version
หากติดตั้งสำเร็จ คุณจะเห็นเวอร์ชันของ Flask ที่ติดตั้ง
3. โครงสร้างโปรเจค Flask
เมื่อคุณสร้างโปรเจค Flask โปรเจคจะมีโครงสร้างที่ค่อนข้างเรียบง่าย ตัวอย่างโครงสร้างโปรเจค Flask:
/myflaskapp
|-- app.py # ไฟล์หลักที่ใช้ในการสร้างแอป
|-- templates/ # โฟลเดอร์เก็บไฟล์ HTML
|-- static/ # โฟลเดอร์เก็บไฟล์ CSS, JS, รูปภาพ
|-- requirements.txt # ไฟล์เก็บรายชื่อไลบรารีที่โปรเจคต้องการ
4. การสร้างแอป Flask เบื้องต้น
หลังจากติดตั้ง Flask แล้ว เราจะสร้างไฟล์ Python ที่ใช้ในการพัฒนาแอปพลิเคชัน Flask ตัวอย่างโค้ดที่สามารถเริ่มต้นได้:
app.py:
from flask import Flask, render_template
# สร้างแอป Flask
app = Flask(__name__)
# หน้าแรก
@app.route(‘/’)
def home():
return render_template(‘index.html’)
if __name__ == ‘__main__’:
app.run(debug=True)
Flask(__name__)
: สร้างแอป Flask โดยใช้ชื่อโมดูล (ในที่นี้คือตัวแปร__name__
)@app.route('/')
: สร้าง route สำหรับหน้าแรกของเว็บ (URL/
)render_template()
: ใช้ในการเรนเดอร์ HTML template
สร้างไฟล์ HTML: index.html
สร้างโฟลเดอร์ templates
และสร้างไฟล์ index.html
ในโฟลเดอร์นี้:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Flask App</title>
</head>
<body>
<h1>Welcome to My First Flask Website!</h1>
</body>
</html>
5. การเพิ่มฟังก์ชันต่างๆ ใน Flask
5.1 การใช้ URL Parameters
Flask รองรับการใช้งาน URL parameters เพื่อรับข้อมูลจาก URL และใช้ในการแสดงผล ตัวอย่างเช่น การสร้างหน้าแสดงข้อความที่เปลี่ยนตามที่ผู้ใช้ใส่ใน URL
ตัวอย่าง:
@app.route('/hello/<name>')
def hello(name):
return f'Hello, {name}!'
ในตัวอย่างนี้ ถ้าคุณเข้าถึง URL http://localhost:5000/hello/John
ผลลัพธ์จะเป็น Hello, John!
5.2 การใช้ Forms ใน Flask
คุณสามารถสร้างฟอร์มใน HTML และส่งข้อมูลจากผู้ใช้ไปยังเซิร์ฟเวอร์เพื่อประมวลผลได้ โดยใช้ HTTP POST method
ตัวอย่าง:
<form method="POST">
<input type="text" name="username" placeholder="Enter your name">
<input type="submit" value="Submit">
</form>
ใน Python Flask, คุณสามารถรับข้อมูลจากฟอร์มได้ดังนี้:
from flask import request
@app.route(‘/submit’, methods=[‘POST’])
def submit():
username = request.form[‘username’]
return f’Hello, {username}!’
5.3 การจัดการ Static Files (CSS, JS, Images)
Flask สามารถจัดการไฟล์ static เช่น CSS, JavaScript, หรือรูปภาพได้ในโฟลเดอร์ static
ตัวอย่างการใช้ไฟล์ CSS:
<head>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
ในที่นี้, url_for('static', filename='style.css')
ใช้เพื่อดึงไฟล์ CSS ที่เก็บในโฟลเดอร์ static
6. การใช้ฐานข้อมูลใน Flask
Flask สามารถเชื่อมต่อกับฐานข้อมูลต่างๆ เช่น SQLite, MySQL, หรือ PostgreSQL เพื่อจัดการข้อมูลของผู้ใช้
ตัวอย่างการเชื่อมต่อกับ SQLite:
ติดตั้งไลบรารี SQLAlchemy:
bashpip install flask_sqlalchemy
ใช้ SQLAlchemy ในการเชื่อมต่อฐานข้อมูล:
from flask_sqlalchemy import SQLAlchemy
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:///site.db’
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(120), unique=True, nullable=False)
@app.route(‘/add’)
def add_user():
new_user = User(username=“John”)
db.session.add(new_user)
db.session.commit()
return “User added!”
7. การทดสอบและดีบัก
Flask มีโหมด debug ที่ช่วยให้คุณสามารถตรวจสอบข้อผิดพลาดในระหว่างการพัฒนาได้
if __name__ == '__main__':
app.run(debug=True)
เมื่อเปิดใช้งานโหมด debug, Flask จะรีสตาร์ทแอปพลิเคชันอัตโนมัติเมื่อมีการเปลี่ยนแปลงไฟล์ และแสดงข้อผิดพลาดในหน้าเว็บ
8. การนำแอป Flask ขึ้นสู่ Production
หลังจากพัฒนาแอปเสร็จแล้ว คุณสามารถนำแอปขึ้นสู่เซิร์ฟเวอร์จริงเพื่อให้ผู้ใช้งานเข้าถึงได้ การใช้ Gunicorn เป็นเซิร์ฟเวอร์สำหรับ Flask ในการรองรับการใช้งานใน production:
ติดตั้ง Gunicorn:
bashpip install gunicorn
รันแอปด้วย Gunicorn:
bashgunicorn app:app
9. สรุป
Flask เป็นเครื่องมือที่ดีสำหรับการเริ่มต้นสร้างเว็บแอปพลิเคชัน ด้วยความเรียบง่ายและความยืดหยุ่นในการพัฒนา ทำให้ผู้พัฒนาสามารถสร้างเว็บไซต์ที่มีความสามารถหลากหลาย ตั้งแต่การสร้างแอปพลิเคชันเบื้องต้นไปจนถึงการใช้งานฐานข้อมูลและฟังก์ชันขั้นสูง
การเริ่มต้นสอนทำเว็บไซต์ด้วย Flask ไม่ยากอย่างที่คิด โดยคุณสามารถเรียนรู้จากพื้นฐานและสร้างโปรเจคจริงที่สามารถนำไปใช้งานได้จริงในโลกของการพัฒนาเว็บ
ขอให้สนุกกับการพัฒนาเว็บไซต์ด้วย Flask