Ahmad Rosid

https://ahmadrosid.com The more I learn, the more I realize how much I don’t know.

May 28, 2018

Flask Static Files

Mengakses file yang tidak berubah pada aplikasi flask.

Files

Pada tutorial sebelumnya kita sudah bahas tentang routing, atau tehnik bagaimana cara melakukan atau mengolah navigasi pada aplikasi flask.

Sebuah web yang cukup kompleks tentu akan memiliki data yang dinamis, nah 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 kita perlu melakukan hal berikut ini.

          
|---app
    |---app.py
    |---static
        |---app.css
        |---img
            |---profile.jpg
          
        

Jadi diatas adalah contoh struktur project aplikasi flask sederhana, jadi ketika kita ingin mengkases file static maka yang pertama adalah kita 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 kita juga 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 penting 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 kita membuat dua instance flask yaitu pada file __init__.py dan app.py. Jika kita 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 kita menjalankan run.py maka folder static akan terdeteksi akan tetapi kita menjalankan instance flask yang ada di folder app. Nah untuk itu 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 
          
        

Next

© 2017 Codecast.id