Skip to main content
0
Programming LanguagePython

ทำเว็บด้วย Python 3 นาทีก็ทำได้ !

ใครที่กำลังเรียน Python กันอยู่ วันนี้เราจะมาสอนการทำเว็บอย่างง่ายๆ ด้วย python กันครับ โดยเครื่องมือที่เราจะใช้ก็คือ Flask ที่เป็น Framework ของ python ที่ใช้ในการเขียนเว็บสำหรับใครที่กำลังอยากลองเขียนเว็บเล่นๆ ก็ลองทำตามดูนะครับ

สิ่งที่ต้องมี
    1.Python
    2.Editer (ในที่นี้จะใช้ Pycharm ครับ)

ก่อนอื่นก็มาติดตั้ง Flask กัน
    พิมพ์โค้ดตามนี้ใน Terminal เพื่อติดตั้งได้เลย

python -m pip install Flask

มาลองสร้างหน้าเว็บพื้นฐาน Hello กัน

  • ขั้นแรกให้สร้างไฟล์ Python ขึ้นมาแล้ว import Flask และประกาศตามนี้
from flask import Flask
app = Flask(__name__)
  • จากนั้นให้เขียนโค้ดให้เว็บของเรารันใน localhost ที่ port 8000
if __name__ == '__main__':
 app.debug = True
 app.run(host='0.0.0.0', port=8000)
  • แล้วเขียนคำสั่งแบบนี้ไว้ระหว่างโค้ดด้านบน
@app.route('/hello')
def Home():
   return "<h1>Hello World</h1>"

คำสั่งนี้จะเป็นการใช้ @app.route() เพื่อกำหนดให้ url path ‘/hello’ ไปเรียกฟังก์ชัน Home เพื่อ return html code มา render ในเว็บของเรา
(path นั้นสามารถเปลี่ยนเป็นคำว่าอะไรก็ได้ เพียงแค่เปลี่ยนคำว่า hello เป็นคำอื่นได้เลย)

เสร็จแล้วก็จะได้โค้ดประมาณนี้

from flask import Flask
app = Flask(__name__)
	
@app.route('/')
def Home():
   return "<h1>Hello</h1>"

if __name__ == '__main__':
 app.debug = True
 app.run(host='0.0.0.0', port=8000)
  • ใช้คำสั่ง python myWeb.py ใน terminal เพื่อรันไฟล์ของเรากันเลย
python myWeb.py

เมื่อเปิดเข้า localhost:8000 ใน browser ก็จะได้หน้าเว็บตามโค้ด html ที่เราใส่ลงไป

@app.route() นั้นสามารถใช้สำหรับกำหนดการรับ input ผ่าน path ได้ เช่น

@app.route('/hello/<string:name>')
def Home(name):
   return ("<h1>Hello %s </h1>" % name)

ตามคำสั่งด้านบนจะเป็นการรับค่า string ที่อยู่ด้านหลัง path ‘/hello/’ มาเก็บไว้ในตัวแปรชื่อ name จากนั้นจึงนำค่าที่ได้ส่งมาใส่ฟังก์ชัน Home เพื่อมาประกอบกับ html code ที่จะถูกนำไป render บนหน้าเว็บ ดังนี้

สร้าง Template

เราสามารถให้ python ไปเรียกไฟล์ html มา render ได้ด้วย โดยที่จะได้ไม่ต้องมาเขียนโค้ด html ยาวๆในไฟล์ python เพื่อให้โค้ดอ่านง่าย เป็นระเบียบ และง่ายต่อการแก้ไข

– ขั้นแรกให้เราสร้างโฟลเดอร์ชื่อ templates ให้อยู่ในชั้นเดียวกับไฟล์ python ของเรา และสร้างไฟล์ html ขึ้นมา

– ที่ไฟล์ python ให้เรา import render_template เข้ามาเพิ่ม และเปลี่ยนการ return จาก string ธรรมดาเป็นการใช้ฟังก์ชัน render_template เพื่อนำไฟล์ html มา render แทน และโยนตัวแปร name เข้าไปในไฟล์ html

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/hello/<string:name>')
def Home(name):
  return render_template('myTemplate.html', name=name)

if __name__ == '__main__':
 app.debug = True
 app.run(host='0.0.0.0', port=8000)

– ส่วนที่ไฟล์ html ให้เราเพิ่ม {{name}} เพื่อรับตัวแปร name จากฝั่ง python มาแสดง

<!DOCTYPE html>
<html>
 <head>
   <meta charset="utf-8">
   <title>Hello</title>
 </head>
 <body>
   <h1>Hello {{name}}</h1>
 </body>
</html>

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

จากนั้นก็ต่อเติมเว็บตามที่เราต้องการได้เลย

จากภาพจะเป็นเว็บแสดงตารางโชว์ในสวนสัตว์ที่มีเพียง html แต่ยังไม่มี css ที่ช่วยเพิ่มความสวยงาม

ถ้าเราไม่อยากจัดแต่งความสวยงามด้วยตัวเองอย่างละเอียด ขอแนะนำให้ลองใช้ css framework ที่มี css สำเร็จรูปให้เรียกใช้ได้ทันทีเพียงแค่ใส่ class เท่านั้นเอง ในที่นี้จะใช้ของ bootstrap เพื่อตกแต่งคร่าวๆก็จะได้ตามรูป

การตกแต่งนี้เพิ่มโค้ดใน html เพียงแค่ 3 บรรทัดเท่านั้นเอง
  ขั้นแรกให้ทำการ import bootstrap โดยการแปะ link นี้ไว้ที่ head ของhtml ตามภาพ

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

  จากใส่ class ให้กับ html element เพื่อเติมความสวยงามของ css bootstrap ให้กับ element ของเรา

ในที่นี้จะเพิ่มคลาสให้กับ div เพื่อจัดระยะ : <div class=”container”>  และ table : <table class=” table table-striped”> เท่านี้ก็ได้ผลลัพธ์ดังภาพแล้ว

Develeper

Author Develeper

More posts by Develeper

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

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้สำหรับการติดตามทางการตลาด

    ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า