1. Pengantar Flask dan Web Development
Flask adalah microframework Python yang ringan dan fleksibel untuk membangun aplikasi web. Dengan Flask, Anda dapat membuat website mulai dari yang sederhana hingga kompleks dengan mudah dan cepat.
Dalam ebook ini, Anda akan belajar mulai dari dasar Flask, cara membuat routing, menggunakan template, mengelola form, hingga mempublikasikan website Anda ke internet.
2. Persiapan Lingkungan dan Instalasi
Sebelum mulai coding, pastikan Anda sudah menginstal Python versi terbaru. Flask dapat diinstal dengan mudah menggunakan pip.
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install Flask
Virtual environment membantu menjaga dependensi proyek agar tidak bercampur dengan proyek lain.
3. Struktur Dasar Proyek Flask
Struktur proyek yang rapi memudahkan pengembangan dan pemeliharaan. Berikut contoh struktur sederhana:
myflaskapp/
├── app.py
├── templates/
│ └── index.html
├── static/
│ ├── css/
│ └── js/
└── venv/
File
app.py
adalah titik masuk aplikasi,
templates/
berisi file HTML, dan
static/
untuk file CSS dan JavaScript.
4. Routing dan Views
Routing menentukan URL yang dapat diakses dan fungsi yang dijalankan. Contoh routing sederhana:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Selamat datang di Flask!'
Anda dapat menambahkan route lain dengan dekorator
@app.route()
dan membuat fungsi view yang mengembalikan konten.
5. Template dengan Jinja2
Flask menggunakan Jinja2 sebagai engine template untuk membuat halaman HTML dinamis. Contoh template
index.html
:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Halaman Utama</title>
</head>
<body>
<h1>Halo, {{ nama }}!</h1>
</body>
</html>
Pada
app.py
, Anda bisa render template dengan:
from flask import render_template
@app.route('/')
def home():
return render_template('index.html', nama='Pengguna')
7. Integrasi Database dengan Flask
Flask dapat diintegrasikan dengan berbagai database. Contoh menggunakan SQLite dengan SQLAlchemy:
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
nama = db.Column(db.String(80), nullable=False)
db.create_all()
Anda dapat menambah, mengubah, dan menghapus data menggunakan model yang sudah dibuat.
8. Autentikasi dan Otorisasi
Untuk membuat sistem login, Anda bisa menggunakan Flask-Login. Contoh sederhana:
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user
login_manager = LoginManager()
login_manager.init_app(app)
class User(UserMixin):
# implementasi user
@login_manager.user_loader
def load_user(user_id):
# ambil user dari database
return User.get(user_id)
@app.route('/login', methods=['GET', 'POST'])
def login():
# proses login
pass
@app.route('/dashboard')
@login_required
def dashboard():
return 'Halaman dashboard'
Dengan autentikasi, Anda dapat mengamankan halaman tertentu agar hanya dapat diakses oleh pengguna terdaftar.
9. Deployment dan Publikasi Website
Setelah aplikasi selesai, saatnya mempublikasikan ke internet. Anda bisa menggunakan platform seperti Heroku, PythonAnywhere, atau VPS.
Contoh deploy ke Heroku:
heroku create nama-aplikasi
git push heroku main
heroku ps:scale web=1
heroku open
Pastikan Anda sudah menyiapkan file
Procfile
dan
requirements.txt
untuk deployment.
10. Kesimpulan dan Langkah Selanjutnya
Anda telah mempelajari dasar-dasar desain website menggunakan Flask, mulai dari instalasi, routing, template, form, database, autentikasi, hingga deployment.
Langkah selanjutnya adalah mengembangkan aplikasi Anda dengan fitur-fitur lebih kompleks, memperdalam keamanan, dan meningkatkan performa.
Selamat belajar dan semoga sukses dalam membangun website dengan Flask!