Python Web Application
- Programmers asked us to make sure they can run sample code below in the
python3 virtual environment in the development server. - Install python3 and other required packages to run the code main.py
- Enable python3 virtual environment and create a new virtual environment on “/opt/env/myenv”
- Install the required packages to run the code in this virtual environment
- Save code in directory “/opt/sample-web”
- Make sure the code can be executed in the server without any trouble
Answer
Virtual Environment
Pada soal diminta bikin virtual environment python di /opt/env/myenv. Namun sebelum bikin virtual environment, pastikan paket python3-venv sudah diinstall.
apt install -y python3-venv && python3 -m venv /opt/env/myenv
Jika sudah bikin virtual environment maka semua hal yang berhubungan dengan Flask Web Apps nantinya akan memakai virtual environment tersebut dan tidak memakai environment bawaan.
Install Flask
Selanjutnya adalah menginstall Flask.
/opt/env/myenv/bin/python -m pip install Flask
Web Apps Code
Kemudian salinlah code main.py dan index.html yang ada pada MODUL C – NETDEVOPS – ITNSA – LKSN 2021.pdf ke dalam folder /opt/sample-web.
Pada code yang ada di MODUL C – NETDEVOPS – ITNSA – LKSN 2021.pdf memakai Rendering Template dari Flask, maka penempatan index.html harus berada pada /opt/sample-web/templates/index.html. Sehingga susunan direktori menjadi dibawah
/opt/sample-web/ ├── main.py └── templates └── index.html 1 directory, 3 files
Running Web Apps
Jika sudah semua, seharusnya dapat web apps tersebut sudah dapat dijalankan. Dapat di jalankan dengan
/opt/env/myenv/bin/python /opt/sample-web/main.py
Jika tidak dapat dijalankan, baca kembali error message yang didapat lalu cari di google solusinya. Permasalahan yang umum terjadi adalah 500 Internal Server Error dan jika di check di terminal mendapatkan error message seperti dibawah
jinja2.exceptions.TemplateNotFound: index.html
Kesalahan tersebut karena Flask tidak dapat menemukan index.html dan terkadang ada yang beberapa lupa bikin folder templates atau salah nama seperti template. Pastikan index.html berada di folder templates.
Full Code
Full code dapat dilihat pada git saya https://github.com/f00ds/Competition/tree/main/LKSN/2021/ModulC
Reference
https://flask.palletsprojects.com/en/2.0.x/installation/#install-flask
https://flask.palletsprojects.com/en/2.0.x/quickstart/#rendering-templates