unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Flask

Flask #

Flask adalah web framework mikro untuk Python yang dirancang untuk memudahkan pengembangan aplikasi web. Flask memberikan kebebasan yang besar kepada pengembang karena tidak memaksakan penggunaan struktur tertentu atau komponen tertentu seperti Django. Anda dapat memilih sendiri komponen apa saja yang ingin Anda gunakan.

Instalasi Flask #

Untuk memulai dengan Flask, Anda harus menginstalnya terlebih dahulu. Anda dapat menggunakan pip untuk menginstal Flask.

pip install flask

Membuat Aplikasi Flask #

Setelah Flask terinstal, Anda dapat membuat aplikasi Flask sederhana. Buat file Python, misalnya app.py, dan tulis kode berikut:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)

Kode di atas mendefinisikan aplikasi Flask dengan satu route (/) yang mengembalikan teks “Hello, World!”. Untuk menjalankan aplikasi ini, cukup jalankan file app.py:

python app.py

Aplikasi akan berjalan di http://127.0.0.1:5000/.

Routing #

Flask menggunakan dekorator @app.route untuk menghubungkan URL dengan fungsi view. Berikut adalah contoh beberapa route dasar:

@app.route('/')
def home():
    return 'Home Page'

@app.route('/about')
def about():
    return 'About Page'

Menggunakan Template #

Flask mendukung penggunaan template Jinja2 untuk memisahkan logika aplikasi dan tampilan HTML. Berikut adalah contoh penggunaan template:

Template HTML #

Buat direktori templates dan buat file index.html di dalamnya:

<!-- templates/index.html -->

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
</head>
<body>
    <h1>{{ title }}</h1>
    <p>Welcome to {{ name }}'s website.</p>
</body>
</html>

Menggunakan Template di View #

Modifikasi app.py untuk menggunakan template:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', title='Home Page', name='John Doe')

if __name__ == '__main__':
    app.run(debug=True)

Mengambil Data dari Formulir #

Flask memungkinkan Anda untuk mengambil data dari formulir HTML dengan mudah. Berikut adalah contoh sederhana:

Template HTML untuk Formulir #

Buat file form.html di direktori templates:

<!-- templates/form.html -->

<!DOCTYPE html>
<html>
<head>
    <title>Submit Form</title>
</head>
<body>
    <form action="/submit" method="post">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

View untuk Menangani Formulir #

Modifikasi app.py untuk menangani data formulir:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('form.html')

@app.route('/submit', methods=['POST'])
def submit():
    name = request.form['name']
    return f'Hello, {name}!'

if __name__ == '__main__':
    app.run(debug=True)

Menghubungkan ke Database #

Flask mendukung berbagai macam database melalui ekstensi seperti Flask-SQLAlchemy. Berikut adalah contoh sederhana penggunaan Flask dengan SQLAlchemy:

Instalasi Flask-SQLAlchemy #

Instal Flask-SQLAlchemy menggunakan pip:

pip install flask-sqlalchemy

Mengkonfigurasi Database #

Modifikasi app.py untuk mengonfigurasi dan menggunakan database:

from flask import Flask, request, render_template
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)

@app.route('/')
def home():
    return render_template('form.html')

@app.route('/submit', methods=['POST'])
def submit():
    name = request.form['name']
    user = User(name=name)
    db.session.add(user)
    db.session.commit()
    return f'Hello, {name}!'

if __name__ == '__main__':
    db.create_all()
    app.run(debug=True)

Penggunaan Blueprint #

Blueprints memungkinkan Anda untuk membagi aplikasi Flask besar menjadi beberapa modul yang lebih kecil. Berikut adalah contoh sederhana penggunaan blueprint:

Membuat Blueprint #

Buat direktori myblueprint dan file __init__.py di dalamnya:

# myblueprint/__init__.py

from flask import Blueprint

bp = Blueprint('myblueprint', __name__)

@bp.route('/hello')
def hello():
    return 'Hello from Blueprint!'

Mendaftarkan Blueprint #

Modifikasi app.py untuk mendaftarkan blueprint:

from flask import Flask
from myblueprint import bp as myblueprint_bp

app = Flask(__name__)
app.register_blueprint(myblueprint_bp)

if __name__ == '__main__':
    app.run(debug=True)

Kesimpulan #

Flask adalah framework yang ringan dan fleksibel yang memungkinkan pengembang membangun aplikasi web dengan cepat dan mudah. Dengan menggunakan Flask, Anda memiliki kebebasan untuk memilih komponen dan alat yang Anda butuhkan tanpa dibatasi oleh konvensi ketat. Untuk informasi lebih lanjut, Anda bisa merujuk ke dokumentasi resmi Flask.