Ang digital age ay nangangailangan ng mga dynamic at interactive na karanasan sa web. Ang pagbuo ng isang web server ay ang pundasyon ng digital na landscape na ito, na nagbibigay-daan sa iyong lumikha ng mga application na higit pa sa mga static na HTML na pahina. Ang Python, kasama ang eleganteng syntax at malawak na mga aklatan, ay nagbibigay ng makapangyarihang pundasyon para sa pagbuo ng web. Ang flask, isang magaan at maraming nalalaman na microframework, ay higit na pinapasimple ang proseso. Sa pamamagitan ng pagsasama-sama ng flexibility ng Python sa streamlined na diskarte ng Flask, mabilis at mahusay na makakagawa ang mga developer ng matatag na web server. Ang paglalakbay na ito ay sumasalamin sa mga pangunahing konsepto ng web development, mula sa paghawak sa mga kahilingan at tugon ng HTTP hanggang sa pagruruta at pag-templat, na nagbibigay-kapangyarihan sa iyo na bumuo ng mga nakakaengganyo at functional na web application na maaaring kumonekta at makapagbigay-alam sa mundo.
"Ang web ay nagiging town square para sa pandaigdigang nayon ng bukas." - Bill Gates
I-install ang Flask gamit ang pip:
pip install flask
Nasa ibaba ang kumpletong code para sa isang simpleng sistema ng pagpapareserba sa Restaurant :
from flask import Flask, render_template, request app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/submit', methods=['POST']) def submit(): # Extract form data name = request.form['name'] phone = request.form['phone'] email = request.form['email'] date = request.form['date'] time = request.form['time'] # Create a message for the result page message = ( f"Hello, {name.split()[0]}! Your reservation has been booked for {date} at {time}. " f"A reminder has been sent to {phone} and {email}" ) return render_template('result.html', message=message) if __name__ == '__main__': app.run(debug=True)
index.html
, na dapat maglaman ng form para maipasok ng mga user ang mga detalye ng kanilang reserbasyon.request.form
at gumagawa ng mensahe ng kumpirmasyon. Ang mensahe ay ipapasa sa result.html
template para sa pag-render. python app.py
Debug Mode : Kung ang iyong app.py
ay may kasamang app.run(debug=True)
, magsisimula ang server sa debug mode, na kapaki-pakinabang para sa pagbuo. Nagbibigay ito ng mga detalyadong mensahe ng error at awtomatikong nire-reload ang server kapag gumawa ka ng mga pagbabago sa iyong code.
Port at Host : Bilang default, tumatakbo ang Flask sa http://127.0.0.1:5000/
. Kung kailangan mong baguhin ang host o port, maaari mong baguhin ang app.run()
na tawag sa iyong app.py
:
if __name__ == '__main__': app.run(host='0.0.0.0', port=8000, debug=True)
Ang index.html
file ay nagsisilbing user interface para sa sistema ng pagpapareserba, na nagtatampok ng isang form kung saan maaaring ipasok ng mga user ang kanilang mga detalye tulad ng pangalan, numero ng telepono, email, petsa, at oras para sa pag-book ng talahanayan. Ito ay naka-istilo gamit ang CSS upang magbigay ng visually appealing at user-friendly na karanasan. Sa pagsumite, ang data ng form ay ipinadala sa server para sa pagproseso.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Restaurant Table Booking</title> <style> body { font-family: Arial, sans-serif; background-image: url('https://img.freepik.com/premium-vector/delicious-food-menu-landing-page-template-homepage-design_631465-116.jpg?w=2000'); background-size: cover; background-position: center; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; height: 100vh; } .form-container { background-color: rgba(255, 255, 255, 0.8); padding: 40px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); max-width: 300px; width: 100%; } h1 { text-align: center; color: #333; } label { display: block; margin-bottom: 8px; color: #555; } input[type="text"], input[type="email"], input[type="tel"], input[type="date"], input[type="time"] { width: 100%; padding: 10px; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 4px; } input[type="submit"] { width: 100%; padding: 10px; background-color: #4CAF50; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; } input[type="submit"]:hover { background-color: #45a049; } </style> </head> <body> <div class="form-container"> <h1>Book a Table</h1> <form action="/submit" method="POST"> <label for="name">Name:</label> <input type="text" id="name" name="name" required> <label for="phone">Phone Number:</label> <input type="tel" id="phone" name="phone" required> <label for="email">Email:</label> <input type="email" id="email" name="email" required> <label for="date">Date:</label> <input type="date" id="date" name="date" required> <label for="time">Time:</label> <input type="time" id="time" name="time" required> <input type="submit" value="Submit"> </form> </div> </body> </html>
Ang result.html
file ay nagpapakita ng mensahe ng kumpirmasyon sa user pagkatapos maisumite ang form. Dinamikong ipinapakita nito ang mga detalye ng reservation, na nagkukumpirma sa booking at tinitiyak na may ipinadalang paalala sa ibinigay na impormasyon sa pakikipag-ugnayan
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Reservation Confirmation</title> <link href="https://fonts.googleapis.com/css2?family=Lobster&display=swap" rel="stylesheet"> <style> body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-image: url('https://img.freepik.com/free-vector/minimal-doodle-frame-background-social-story-highlight_53876-97970.jpg?t=st=1735447681~exp=1735451281~hmac=d8f33db86d2b336838279674afb91df8c2089c7e8be13d316dc26982e0b30ac2&w=2000'); background-size: cover; background-position: center; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; height: 100vh; color: #fff; } .form-container { background-color: rgba(0, 0, 0, 0.7); padding: 40px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); max-width: 400px; width: 100%; text-align: center; } h1 { font-family: 'Lobster', cursive; font-size: 32px; margin-bottom: 20px; } p { font-size: 18px; line-height: 1.5; } </style> </head> <body> <div class="form-container"> <h1>Reservation Confirmed!</h1> <p>{{ message }}</p> </div> </body> </html>
Sinuri namin ang mga pangunahing prinsipyo ng web development, mula sa paghawak ng mga kahilingan sa HTTP hanggang sa pag-render ng dynamic na content, paglalatag ng matatag na pundasyon para sa mga pagsusumikap sa hinaharap. Ang web ay isang patuloy na umuunlad na tanawin, puno ng mga pagkakataon para sa pagbabago at pagkamalikhain. Yakapin ang hamon na ito, patuloy na tuklasin ang malawak na posibilidad ng pagbuo ng web, at mag-ambag sa patuloy na lumalagong tapestry ng internet