Sebuah web yang cukup kompleks tentu akan memiliki data yang dinamis, akan tetapi ada data - data yang tidak berubah seperti halnya gambar, video, audio, file css, file js dan yang lainya. Pada aplikasi flask untuk mengakses sebuah file static atau file yang tidak berubah secara dinamis maka perlu melakukan hal berikut ini.
|---app |---app.py |---static |---app.css |---img |---profile.jpg
Contoh struktur project aplikasi flask sederhana, jadi ketika ingin mengkases file static maka yang pertama perlu menaruh file static tersebut pada folder /static
. Dan untuk mengkasesnya seperti berikut ini :
from flask import Flask, redirect, url_for app = Flask(__name__) @app.route('/assets/css/style.css') def stylesheet(): return redirect(url_for('static', filename='app.css')) app.run()
Atau bisa mengkases secara static dengan cara berikut ini :
// URL http://localhost:5000/static/app.css // Link <a href="http://localhost:5000/static/app.css"></a> // Jinja <a href="http://localhost:5000/static/app.css"></a>
Static Folder
Yang perlu diketahui juga adalah direktori yang di akses oleh static files pada flask ini adalah berada di root instance flask di buat. Misalkan seperti berikut ini :
|---project-folder-name |---app |---__init__.py |---static |---app.css |---img |---profile.jpg |---app.py |---config.py |---run.py
Pada contoh struktur folder project diatas membuat dua instance flask yaitu pada file __init__.py dan app.py. Jika menjalankan aplikasi flask yang di app.py maka folder static tidak terdeteksi oleh flask karena folder static adalah sub folder dari app. Akan tetapi jika menjalankan run.py maka folder static akan terdeteksi akan tetapi menjalankan instance flask yang ada di folder app, maka pada file run.py menjadi seperti berikut ini :
from app import app if __name__ == '__main__': app.run()
Dan pada file app/__init__.py seperti ini :
from flask import Flask app = Flask(__name__) // app setup