Python memiliki banyak web framework yang memudahkan pengembangan aplikasi web. Beberapa framework paling populer adalah Django, Flask, dan Pyramid. Setiap framework memiliki fitur dan keunggulannya masing-masing, yang cocok untuk berbagai jenis proyek.
Framework Populer untuk Pengembangan Web dengan Python
| Framework | Kelebihan | Kekurangan | Contoh Kode |
|---|---|---|---|
| Django | – Banyak fitur bawaan<br>- Konvensi kuat<br>- Dokumentasi lengkap | – Terlalu banyak fitur untuk aplikasi kecil<br>- Steep learning curve | python<br>pip install django<br>django-admin startproject myproject |
| Flask | – Ringan dan modular<br>- Mudah dipelajari<br>- Dokumentasi jelas | – Harus memilih dan menambahkan banyak komponen | python<br>pip install flask<br>from flask import Flask<br>app = Flask(__name__) |
| Pyramid | – Fleksibel<br>- Dapat diskalakan<br>- Dukungan untuk berbagai komponen | – Kurang populer dibanding Django dan Flask | python<br>pip install pyramid<br>pcreate -s starter myproject |
1. Django
Django adalah framework tingkat tinggi yang mendorong pengembangan cepat dan desain bersih. Ini mengikuti prinsip “batteries-included”, yang berarti menyediakan banyak fitur bawaan seperti ORM, autentikasi, dan admin interface.
Instalasi Django
pip install django
Membuat Proyek Baru dengan Django
django-admin startproject myproject
cd myproject
python manage.py runserver
Setelah menjalankan perintah di atas, buka browser dan akses http://127.0.0.1:8000/ untuk melihat proyek Django Anda yang baru.
2. Flask
Flask adalah microframework yang ringan dan modular. Ini memberikan fleksibilitas penuh untuk memilih komponen tambahan sesuai kebutuhan, menjadikannya ideal untuk proyek kecil hingga menengah.
Instalasi Flask
pip install flask
Membuat Aplikasi Flask Sederhana
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
Simpan kode di atas dalam file app.py dan jalankan dengan perintah:
bashCopy codepython app.py
Buka browser dan akses http://127.0.0.1:5000/ untuk melihat aplikasi Flask Anda.
3. Pyramid
Pyramid adalah framework yang fleksibel dan dapat diskalakan. Ini cocok untuk berbagai jenis aplikasi, mulai dari kecil hingga besar, dan menawarkan kebebasan dalam memilih template engine, database, dan lainnya.
Instalasi Pyramid
pip install pyramid
Membuat Proyek Baru dengan Pyramid
pcreate -s starter myproject
cd myproject
pserve development.ini
Buka browser dan akses http://127.0.0.1:6543/ untuk melihat proyek Pyramid Anda yang baru.
Contoh Program Pengembangan Web dengan Flask
Berikut adalah contoh program sederhana menggunakan Flask untuk membuat aplikasi web yang memiliki beberapa rute dan mengakses database menggunakan SQLAlchemy.
Instalasi Flask dan SQLAlchemy
pip install flask sqlalchemy
Aplikasi Flask dengan SQLAlchemy
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.name}>'
@app.route('/')
def home():
return 'Hello, World!'
@app.route('/users', methods=['GET', 'POST'])
def manage_users():
if request.method == 'POST':
data = request.get_json()
new_user = User(name=data['name'], email=data['email'])
db.session.add(new_user)
db.session.commit()
return jsonify({"message": "User created!"}), 201
users = User.query.all()
return jsonify([{"id": user.id, "name": user.name, "email": user.email} for user in users])
@app.route('/users/<int:id>', methods=['GET', 'PUT', 'DELETE'])
def handle_user(id):
user = User.query.get_or_404(id)
if request.method == 'GET':
return jsonify({"id": user.id, "name": user.name, "email": user.email})
if request.method == 'PUT':
data = request.get_json()
user.name = data['name']
user.email = data['email']
db.session.commit()
return jsonify({"message": "User updated!"})
if request.method == 'DELETE':
db.session.delete(user)
db.session.commit()
return jsonify({"message": "User deleted!"})
if __name__ == '__main__':
db.create_all() # Membuat database dan tabel
app.run(debug=True)
![]()

