A estrutura deverá ser similar à da aplicação MovieStreamApp que vimos nas aulas teóricas:
- Deve editar o código Python da aplicação em
app.py
. - Deve colocar as templates de geração de HTML na pasta
templates
.
- Aplicações BD com SQL embebido (slides das teóricas)
- MovieStream - aplicação exemplo
- Linguagem HTML
- PyMySQL
- Flask
- Jinja templates
Precisa de ter o Python 3 e o gestor de pacotes pip instalado.
Experimente executar python3 --version
e pip3 --version
para saber
se já estão instalados. Em caso negativo, pode por exemplo em Ubuntu
executar:
sudo apt-get install python3 python3-pip
Tendo Python 3 e pip instalados, deve instalar as bibliotecas Python Flask
, PyMySQL
, e cryptography
em Python, executando o comando:
pip3 install --user Flask==1.1.4 PyMySQL==1.0.2 cryptography==36.0.0
Edite o ficheiro db.py
no que se refere à configuração da sua BD, modificando os parâmetros DB
(nome da base de dados), USER
(nome do utilizador) e PASSWORD
(senha do utilizador).
Em computadores dos laboratório do DCC esses valores costumam ser guest
para USER
e DB
, e aDammGoodP@ssw0rd
para PASSWORD
. Pode confirmar se os valores são esses em um PC do laboratório do DCC inspecionando o conteúdo do ficheiro /etc/my.cnf
(ex. com o comando cat /etc/my.cnf
).
$ cat /etc/my.cnf
...
[client]
user=guest
password=aDammGoodP@ssw0rd
...
Configurados os parâmetros, teste o acesso executando:
python3 test_db_connection.py NOME_DE_UMA_TABELA
Se a configuração do acesso à BD estiver correcto, deverá ser listado o conteúdo da tabela NOME_DE_UMA_TABELA
, por ex. se a BD configurada for a MovieStream:
$ python3 test_db_connection.py REGION
SELECT * FROM REGION
5 results ...
{'RegionId': 6, 'Name': 'Other countries', 'RegionManager': 17}
{'RegionId': 7, 'Name': 'America', 'RegionManager': 16}
{'RegionId': 8, 'Name': 'Asia', 'RegionManager': 15}
{'RegionId': 9, 'Name': 'Europe', 'RegionManager': 17}
{'RegionId': 10, 'Name': 'Africa', 'RegionManager': 15}
Teste agora o servidor executando python3 server.py
, ex.:
$ python3 server.py
2021-05-18 21:40:46 - INFO - Connected to database guest
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
2021-12-08 21:40:46 - INFO - * Running on http://0.0.0.0:9000/ (Press CTRL+C to quit)
...
De seguida abra no seu browser http://127.0.0.1:9000 ou http://localhost:9000. Deverá ver uma página com uma mensagem Hello World!.