สอนทำเว็บไซต์

สอนทำเว็บไซต์ด้วย Python Flask: พื้นฐานและโปรเจคจริง

Python Flask เป็นหนึ่งในเฟรมเวิร์กสำหรับการพัฒนาเว็บแอปพลิเคชันที่ได้รับความนิยมอย่างสูง เนื่องจากความเรียบง่ายและความยืดหยุ่นในการพัฒนา สำหรับมือใหม่ที่ต้องการเรียนรู้วิธีการสอนทำเว็บไซต์ด้วย Python Flask บทความนี้จะพาคุณไปเรียนรู้พื้นฐานการใช้งาน Flask และการสร้างโปรเจคจริงที่สามารถนำไปใช้ได้จริง

1. ทำความรู้จักกับ Flask

Flask เป็น ไมโครเฟรมเวิร์ก (Microframework) สำหรับการพัฒนาเว็บแอปพลิเคชันในภาษา Python ซึ่งแตกต่างจากเฟรมเวิร์กอื่นๆ เช่น Django ที่มักจะมีฟังก์ชันมากมายให้ใช้งานในตัว Flask มุ่งเน้นไปที่การให้เครื่องมือพื้นฐานที่สุดที่จำเป็นสำหรับการสร้างเว็บแอปพลิเคชัน

ข้อดีของ Flask:

  • เรียบง่าย: Flask มีขนาดเล็กและเรียนรู้ได้ง่าย
  • ยืดหยุ่น: สามารถปรับแต่งและขยายฟังก์ชันตามความต้องการ
  • แนะนำสำหรับผู้เริ่มต้น: เหมาะสำหรับมือใหม่ที่ต้องการเรียนรู้วิธีสร้างเว็บแอป

2. การติดตั้ง Python และ Flask

ก่อนที่จะเริ่มพัฒนาเว็บไซต์ด้วย Flask คุณต้องติดตั้ง Python และ Flask บนคอมพิวเตอร์ของคุณก่อน

ขั้นตอนการติดตั้ง:

  1. ติดตั้ง Python: ดาวน์โหลดและติดตั้ง Python จากเว็บไซต์ทางการ Python.org
  2. ติดตั้ง Flask: ใช้คำสั่งนี้ในคอมมานด์ไลน์เพื่อให้แน่ใจว่า Flask ได้รับการติดตั้งแล้ว:
    bash
    pip install Flask

ตรวจสอบการติดตั้ง Flask:

หลังจากติดตั้ง Flask แล้ว คุณสามารถตรวจสอบการติดตั้งด้วยคำสั่ง:

bash
python -m flask --version

หากติดตั้งสำเร็จ คุณจะเห็นเวอร์ชันของ Flask ที่ติดตั้ง

3. โครงสร้างโปรเจค Flask

เมื่อคุณสร้างโปรเจค Flask โปรเจคจะมีโครงสร้างที่ค่อนข้างเรียบง่าย ตัวอย่างโครงสร้างโปรเจค Flask:

bash
/myflaskapp
|-- app.py # ไฟล์หลักที่ใช้ในการสร้างแอป
|-- templates/ # โฟลเดอร์เก็บไฟล์ HTML
|-- static/ # โฟลเดอร์เก็บไฟล์ CSS, JS, รูปภาพ
|-- requirements.txt # ไฟล์เก็บรายชื่อไลบรารีที่โปรเจคต้องการ

4. การสร้างแอป Flask เบื้องต้น

หลังจากติดตั้ง Flask แล้ว เราจะสร้างไฟล์ Python ที่ใช้ในการพัฒนาแอปพลิเคชัน Flask ตัวอย่างโค้ดที่สามารถเริ่มต้นได้:

app.py:

python

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 ในโฟลเดอร์นี้:

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

ตัวอย่าง:

python
@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

ตัวอย่าง:

html
<form method="POST">
<input type="text" name="username" placeholder="Enter your name">
<input type="submit" value="Submit">
</form>

ใน Python Flask, คุณสามารถรับข้อมูลจากฟอร์มได้ดังนี้:

python

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:

html
<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:

  1. ติดตั้งไลบรารี SQLAlchemy:

    bash
    pip install flask_sqlalchemy
  2. ใช้ SQLAlchemy ในการเชื่อมต่อฐานข้อมูล:

python

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 ที่ช่วยให้คุณสามารถตรวจสอบข้อผิดพลาดในระหว่างการพัฒนาได้

python
if __name__ == '__main__':
app.run(debug=True)

เมื่อเปิดใช้งานโหมด debug, Flask จะรีสตาร์ทแอปพลิเคชันอัตโนมัติเมื่อมีการเปลี่ยนแปลงไฟล์ และแสดงข้อผิดพลาดในหน้าเว็บ

8. การนำแอป Flask ขึ้นสู่ Production

หลังจากพัฒนาแอปเสร็จแล้ว คุณสามารถนำแอปขึ้นสู่เซิร์ฟเวอร์จริงเพื่อให้ผู้ใช้งานเข้าถึงได้ การใช้ Gunicorn เป็นเซิร์ฟเวอร์สำหรับ Flask ในการรองรับการใช้งานใน production:

  1. ติดตั้ง Gunicorn:

    bash
    pip install gunicorn
  2. รันแอปด้วย Gunicorn:

    bash
    gunicorn app:app

9. สรุป

Flask เป็นเครื่องมือที่ดีสำหรับการเริ่มต้นสร้างเว็บแอปพลิเคชัน ด้วยความเรียบง่ายและความยืดหยุ่นในการพัฒนา ทำให้ผู้พัฒนาสามารถสร้างเว็บไซต์ที่มีความสามารถหลากหลาย ตั้งแต่การสร้างแอปพลิเคชันเบื้องต้นไปจนถึงการใช้งานฐานข้อมูลและฟังก์ชันขั้นสูง

การเริ่มต้นสอนทำเว็บไซต์ด้วย Flask ไม่ยากอย่างที่คิด โดยคุณสามารถเรียนรู้จากพื้นฐานและสร้างโปรเจคจริงที่สามารถนำไปใช้งานได้จริงในโลกของการพัฒนาเว็บ

ขอให้สนุกกับการพัฒนาเว็บไซต์ด้วย Flask

Leave A Comment