Difference between revisions of "Struktur Proyek Flask dan Manajemen Template"

From OnnoWiki
Jump to navigation Jump to search
 
Line 1: Line 1:
# Modul 1.2: Struktur Proyek Flask dan Manajemen Template
+
==Tujuan Pembelajaran==
 
 
## Tujuan Pembelajaran
 
  
 
Setelah menyelesaikan modul ini, Anda diharapkan mampu:
 
Setelah menyelesaikan modul ini, Anda diharapkan mampu:
  
- Memahami struktur proyek yang baik dalam pengembangan aplikasi Flask.
+
* Memahami struktur proyek yang baik dalam pengembangan aplikasi Flask.
- Menggunakan template Jinja2 untuk memisahkan logika aplikasi dan tampilan.
+
* Menggunakan template Jinja2 untuk memisahkan logika aplikasi dan tampilan.
- Membuat aplikasi Flask dengan struktur yang terorganisir dan template dinamis.
+
* Membuat aplikasi Flask dengan struktur yang terorganisir dan template dinamis.
  
## Pengenalan Struktur Proyek Flask
+
==Pengenalan Struktur Proyek Flask==
  
Dalam pengembangan aplikasi Flask, memiliki struktur proyek yang terorganisir sangat penting untuk memudahkan pemeliharaan dan pengembangan lebih lanjut. Struktur yang baik memungkinkan pemisahan antara logika aplikasi, tampilan, dan komponen lainnya.
+
Dalam pengembangan aplikasi Flask, memiliki struktur proyek yang terorganisir sangat penting untuk memudahkan pemeliharaan dan pengembangan lebih lanjut. Struktur yang baik memungkinkan pemisahan antara logika aplikasi, tampilan, dan komponen lainnya.
  
### Struktur Proyek Dasar
+
==Struktur Proyek Dasar==
  
Berikut adalah struktur dasar yang umum digunakan dalam proyek Flask:
+
Berikut adalah struktur dasar yang umum digunakan dalam proyek Flask:
  
```
+
flask_app/
 +
├── app/
 +
│  ├── __init__.py
 +
│  ├── routes.py
 +
│  ├── models.py
 +
│  ├── templates/
 +
│  │  ├── base.html
 +
│  │  ├── index.html
 +
│  │  └── about.html
 +
│  └── static/
 +
│      ├── style.css
 +
│      └── script.js
 +
├── venv/
 +
├── config.py
 +
├── run.py
 +
└── requirements.txt
  
flask_app/
 
├── app/
 
│  ├── __init__.py
 
│  ├── routes.py
 
│  ├── models.py
 
│  ├── templates/
 
│  │  ├── base.html
 
│  │  ├── index.html
 
│  │  └── about.html
 
│  └── static/
 
│      ├── style.css
 
│      └── script.js
 
├── venv/
 
├── config.py
 
├── run.py
 
└── requirements.txt
 
```
 
 
  
 
Penjelasan struktur di atas:
 
Penjelasan struktur di atas:
  
- `flask_app/`: Direktori utama proyek.
+
* `flask_app/`: Direktori utama proyek.
- `app/`: Paket Python yang berisi aplikasi Flask.
+
* `app/`: Paket Python yang berisi aplikasi Flask.
  - `__init__.py`: Menginisialisasi aplikasi dan mengimpor modul yang diperlukan.
+
** `__init__.py`: Menginisialisasi aplikasi dan mengimpor modul yang diperlukan.
  - `routes.py`: Menangani definisi rute dan logika tampilan.
+
** `routes.py`: Menangani definisi rute dan logika tampilan.
  - `models.py`: Mendefinisikan model untuk interaksi dengan basis data.
+
** `models.py`: Mendefinisikan model untuk interaksi dengan basis data.
  - `templates/`: Folder untuk menyimpan file template HTML.
+
** `templates/`: Folder untuk menyimpan file template HTML.
  - `static/`: Folder untuk menyimpan file statis seperti CSS, JavaScript, dan gambar.
+
** `static/`: Folder untuk menyimpan file statis seperti CSS, JavaScript, dan gambar.
- `venv/`: Lingkungan virtual Python untuk proyek ini.
+
* `venv/`: Lingkungan virtual Python untuk proyek ini.
- `config.py`: File konfigurasi untuk aplikasi.
+
* `config.py`: File konfigurasi untuk aplikasi.
- `run.py`: Skrip untuk menjalankan aplikasi.
+
* `run.py`: Skrip untuk menjalankan aplikasi.
- `requirements.txt`: Daftar dependensi yang diperlukan oleh proyek.
+
* `requirements.txt`: Daftar dependensi yang diperlukan oleh proyek.
  
Struktur ini membantu dalam memisahkan berbagai komponen aplikasi, sehingga memudahkan pengelolaan dan pengembangan lebih lanjut.
+
Struktur ini membantu dalam memisahkan berbagai komponen aplikasi, sehingga memudahkan pengelolaan dan pengembangan lebih lanjut.
  
## Membuat Aplikasi Flask dengan Struktur yang Baik
+
==Membuat Aplikasi Flask dengan Struktur yang Baik==
  
Berikut adalah langkah-langkah untuk membuat aplikasi Flask dengan struktur yang terorganisir:
+
Berikut adalah langkah-langkah untuk membuat aplikasi Flask dengan struktur yang terorganisir:
  
1. **Membuat Direktori Proyek dan Mengatur Lingkungan Virtual**
+
1. '''Membuat Direktori Proyek dan Mengatur Lingkungan Virtual'''
 +
 
 +
mkdir flask_app
 +
cd flask_app
 +
python3 -m venv venv
 +
source venv/bin/activate
 +
 
 +
2. '''Menginstal Flask'''
 +
 
 +
pip install flask
  
  ```bash
+
3. '''Membuat Struktur Direktori'''
  mkdir flask_app
+
 
  cd flask_app
+
mkdir app
  python3 -m venv venv
+
mkdir app/templates
  source venv/bin/activate
+
mkdir app/static
  ```
 
 
  
2. **Menginstal Flask**
+
4. '''Membuat File `__init__.py`'''
  
  ```bash
+
Buat file `app/__init__.py` dan tambahkan kode berikut:
   pip install flask
+
    
  ```
+
from flask import Flask
+
 +
def create_app():
 +
    app = Flask(__name__)
 +
    app.config.from_object('config.Config')
 +
 +
    with app.app_context():
 +
        from . import routes
 +
        return app
  
3. **Membuat Struktur Direktori**
+
5. '''Membuat File `routes.py`'''
  
  ```bash
+
Buat file `app/routes.py` dan tambahkan kode berikut:
  mkdir app
 
  mkdir app/templates
 
  mkdir app/static
 
  ```
 
 
  
4. **Membuat File `__init__.py`**
+
from flask import render_template
 +
from . import create_app
 +
 +
app = create_app()
 +
 +
@app.route('/')
 +
def index():
 +
    return render_template('index.html')
 +
 +
@app.route('/about')
 +
def about():
 +
    return render_template('about.html')
  
  Buat file `app/__init__.py` dan tambahkan kode berikut:
+
6. '''Membuat File Template'''
  
  ```python
+
Buat file `app/templates/base.html` sebagai template dasar:
  from flask import Flask
 
  
  def create_app():
+
<pre>
      app = Flask(__name__)
+
<!doctype html>
      app.config.from_object('config.Config')
+
<html lang="id">
 +
<head>
 +
    <meta charset="utf-8">
 +
    <title>{% block title %}{% endblock %} - Aplikasi Flask</title>
 +
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
 +
</head>
 +
<body>
 +
    <nav>
 +
        <a href="{{ url_for('index') }}">Beranda</a>
 +
        <a href="{{ url_for('about') }}">Tentang</a>
 +
    </nav>
 +
    {% block content %}{% endblock %}
 +
</body>
 +
</html>
 +
</pre> 
  
      with app.app_context():
+
Kemudian, buat file `app/templates/index.html`:
          from . import routes
 
          return app
 
  ```
 
 
  
5. **Membuat File `routes.py`**
+
<pre>
 +
{% extends 'base.html' %}
 +
 +
{% block title %}Beranda{% endblock %}
 +
 +
{% block content %}
 +
    <h1>Selamat Datang di Aplikasi Flask!</h1>
 +
    <p>Ini adalah halaman beranda.</p>
 +
{% endblock %}
 +
</pre>
  
  Buat file `app/routes.py` dan tambahkan kode berikut:
+
Dan file `app/templates/about.html`:
  
  ```python
+
<pre> 
  from flask import render_template
+
{% extends 'base.html' %}
  from . import create_app
+
 +
{% block title %}Tentang{% endblock %}
 +
 +
{% block content %}
 +
    <h1>Tentang Aplikasi Ini</h1>
 +
    <p>Informasi tentang aplikasi ini.</p>
 +
{% endblock %}
 +
</pre> 
  
  app = create_app()
+
7. '''Membuat File `run.py`'''
  
  @app.route('/')
+
Buat file `run.py` di direktori utama proyek:
  def index():
 
      return render_template('index.html')
 
  
  @app.route('/about')
+
  def about():
+
from app import create_app
      return render_template('about.html')
+
  ```
+
app = create_app()
+
 +
if __name__ == '__main__':
 +
      app.run(debug=True)
  
6. **Membuat File Template**
+
8. '''Menjalankan Aplikasi'''
  
  Buat file `app/templates/base.html` sebagai template dasar:
+
Setelah menambahkan file statis dan menghubungkannya ke template, jalankan aplikasi Flask Anda:
  
  ```html
+
python run.py
  <!doctype html>
 
  <html lang="id">
 
  <head>
 
      <meta charset="utf-8">
 
      <title>{% block title %}{% endblock %} - Aplikasi Flask</title>
 
      <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
 
  </head>
 
  <body>
 
      <nav>
 
          <a href="{{ url_for('index') }}">Beranda</a>
 
          <a href="{{ url_for('about') }}">Tentang</a>
 
      </nav>
 
      {% block content %}{% endblock %}
 
  </body>
 
  </html>
 
  ```
 
 
  
  Kemudian, buat file `app/templates/index.html`:
+
Akses aplikasi melalui browser di http://127.0.0.1:5000/. Anda akan melihat bahwa gaya dari style.css telah diterapkan, dan jika Anda membuka konsol pengembang browser, pesan dari script.js akan muncul.​
  
  ```html
+
==Kesimpulan==
  {% extends 'base.html' %}
+
Dengan menambahkan file statis seperti CSS dan JavaScript, Anda dapat meningkatkan tampilan dan interaktivitas aplikasi Flask Anda. Struktur proyek yang terorganisir dengan pemisahan antara logika, tampilan, dan aset statis akan memudahkan pengembangan dan pemeliharaan aplikasi di masa mendatang.
 
 
  {% block title %}Beranda{% endblock %}
 
 
 
  {% block content %}
 
      <h1>Selamat Datang di Aplikasi Flask!</h1>
 
      <p>Ini adalah halaman beranda.</p>
 
  {% endblock %}
 
  ```
 
 
 
 
  Dan file `app/templates/about.html`:
 
 
 
  ```html
 
  {% extends 'base.html' %}
 
 
 
  {% block title %}Tentang{% endblock %}
 
 
 
  {% block content %}
 
      <h1>Tentang Aplikasi Ini</h1>
 
      <p>Informasi tentang aplikasi ini.</p>
 
  {% endblock %}
 
  ```
 
 
 
 
7. **Membuat File `run.py`**
 
 
 
  Buat file `run.py` di direktori utama proyek:
 
 
 
  ```python
 
  from app import create_app
 
 
 
  app = create_app()
 
 
 
  if __name__ == '__main__':
 
      app.run(debug=True)
 
  ```
 
 
  
8. **Menjalankan Aplikasi**
+
==Referensi==
  
  Jalankan aplikasi dengan perintah:  
+
* [Tutorial Flask Resmi](https://flask.palletsprojects.com/en/stable/tutorial/)
  
Menjalankan Aplikasi
 
Setelah menambahkan file statis dan menghubungkannya ke template, jalankan aplikasi Flask Anda:​
 
 
 
python run.py
 
 
Akses aplikasi melalui browser di http://127.0.0.1:5000/. Anda akan melihat bahwa gaya dari style.css telah diterapkan, dan jika Anda membuka konsol pengembang browser, pesan dari script.js akan muncul.​
 
 
Kesimpulan
 
Dengan menambahkan file statis seperti CSS dan JavaScript, Anda dapat meningkatkan tampilan dan interaktivitas aplikasi Flask Anda. Struktur proyek yang terorganisir dengan pemisahan antara logika, tampilan, dan aset statis akan memudahkan pengembangan dan pemeliharaan aplikasi di masa mendatang.
 
  
 +
==Pranala Menarik==
  
  - **1.2. Struktur Proyek Flask dan Manajemen Template**
+
* [[Web Programming]]
    - Mempelajari struktur proyek yang baik dalam Flask dan penggunaan template untuk memisahkan logika dan tampilan.
 
    - Contoh: Menggunakan Jinja2 untuk membuat template dinamis.
 
    - Referensi: [Tutorial Flask Resmi](https://flask.palletsprojects.com/en/stable/tutorial/)
 

Latest revision as of 12:43, 7 April 2025

Tujuan Pembelajaran

Setelah menyelesaikan modul ini, Anda diharapkan mampu:

  • Memahami struktur proyek yang baik dalam pengembangan aplikasi Flask.
  • Menggunakan template Jinja2 untuk memisahkan logika aplikasi dan tampilan.
  • Membuat aplikasi Flask dengan struktur yang terorganisir dan template dinamis.

Pengenalan Struktur Proyek Flask

Dalam pengembangan aplikasi Flask, memiliki struktur proyek yang terorganisir sangat penting untuk memudahkan pemeliharaan dan pengembangan lebih lanjut. Struktur yang baik memungkinkan pemisahan antara logika aplikasi, tampilan, dan komponen lainnya.

Struktur Proyek Dasar

Berikut adalah struktur dasar yang umum digunakan dalam proyek Flask:

flask_app/
├── app/
│   ├── __init__.py
│   ├── routes.py
│   ├── models.py
│   ├── templates/
│   │   ├── base.html
│   │   ├── index.html
│   │   └── about.html
│   └── static/
│       ├── style.css
│       └── script.js
├── venv/
├── config.py
├── run.py
└── requirements.txt


Penjelasan struktur di atas:

  • `flask_app/`: Direktori utama proyek.
  • `app/`: Paket Python yang berisi aplikasi Flask.
    • `__init__.py`: Menginisialisasi aplikasi dan mengimpor modul yang diperlukan.
    • `routes.py`: Menangani definisi rute dan logika tampilan.
    • `models.py`: Mendefinisikan model untuk interaksi dengan basis data.
    • `templates/`: Folder untuk menyimpan file template HTML.
    • `static/`: Folder untuk menyimpan file statis seperti CSS, JavaScript, dan gambar.
  • `venv/`: Lingkungan virtual Python untuk proyek ini.
  • `config.py`: File konfigurasi untuk aplikasi.
  • `run.py`: Skrip untuk menjalankan aplikasi.
  • `requirements.txt`: Daftar dependensi yang diperlukan oleh proyek.

Struktur ini membantu dalam memisahkan berbagai komponen aplikasi, sehingga memudahkan pengelolaan dan pengembangan lebih lanjut.

Membuat Aplikasi Flask dengan Struktur yang Baik

Berikut adalah langkah-langkah untuk membuat aplikasi Flask dengan struktur yang terorganisir:

1. Membuat Direktori Proyek dan Mengatur Lingkungan Virtual

mkdir flask_app
cd flask_app
python3 -m venv venv
source venv/bin/activate
  

2. Menginstal Flask

pip install flask

3. Membuat Struktur Direktori

mkdir app
mkdir app/templates
mkdir app/static

4. Membuat File `__init__.py`

Buat file `app/__init__.py` dan tambahkan kode berikut:

from flask import Flask

def create_app():
    app = Flask(__name__)
    app.config.from_object('config.Config')

    with app.app_context():
        from . import routes
        return app

5. Membuat File `routes.py`

Buat file `app/routes.py` dan tambahkan kode berikut:

from flask import render_template
from . import create_app

app = create_app()

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

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

6. Membuat File Template

Buat file `app/templates/base.html` sebagai template dasar:

 
 <!doctype html>
 <html lang="id">
 <head>
     <meta charset="utf-8">
     <title>{% block title %}{% endblock %} - Aplikasi Flask</title>
     <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
 </head>
 <body>
     <nav>
         <a href="{{ url_for('index') }}">Beranda</a>
         <a href="{{ url_for('about') }}">Tentang</a>
     </nav>
     {% block content %}{% endblock %}
 </body>
 </html>

Kemudian, buat file `app/templates/index.html`:

 {% extends 'base.html' %}
 
 {% block title %}Beranda{% endblock %}
 
 {% block content %}
     <h1>Selamat Datang di Aplikasi Flask!</h1>
     <p>Ini adalah halaman beranda.</p>
 {% endblock %}

Dan file `app/templates/about.html`:

   
 {% extends 'base.html' %}
 
 {% block title %}Tentang{% endblock %}
 
 {% block content %}
     <h1>Tentang Aplikasi Ini</h1>
     <p>Informasi tentang aplikasi ini.</p>
 {% endblock %}

7. Membuat File `run.py`

Buat file `run.py` di direktori utama proyek:


from app import create_app

app = create_app()

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

8. Menjalankan Aplikasi

Setelah menambahkan file statis dan menghubungkannya ke template, jalankan aplikasi Flask Anda:​

python run.py

Akses aplikasi melalui browser di http://127.0.0.1:5000/. Anda akan melihat bahwa gaya dari style.css telah diterapkan, dan jika Anda membuka konsol pengembang browser, pesan dari script.js akan muncul.​

Kesimpulan

Dengan menambahkan file statis seperti CSS dan JavaScript, Anda dapat meningkatkan tampilan dan interaktivitas aplikasi Flask Anda. Struktur proyek yang terorganisir dengan pemisahan antara logika, tampilan, dan aset statis akan memudahkan pengembangan dan pemeliharaan aplikasi di masa mendatang.

Referensi


Pranala Menarik