Python : Web Framework Python

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

FrameworkKelebihanKekuranganContoh Kode
Django– Banyak fitur bawaan<br>- Konvensi kuat<br>- Dokumentasi lengkap– Terlalu banyak fitur untuk aplikasi kecil<br>- Steep learning curvepython<br>pip install django<br>django-admin startproject myproject
Flask– Ringan dan modular<br>- Mudah dipelajari<br>- Dokumentasi jelas– Harus memilih dan menambahkan banyak komponenpython<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 Flaskpython<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)

Loading