Lab realized as a student at ECN. This app is a python CLI (command line interface) to query a PostgreSQL database. https://github.com/DricomDragon/PythonPostgresLab
DricomDragon 861878cdd5 License unedr GNU GPLv3 | il y a 3 ans | |
---|---|---|
SQL | il y a 5 ans | |
cli | il y a 5 ans | |
consumer | il y a 5 ans | |
model | il y a 5 ans | |
.gitignore | il y a 5 ans | |
LICENSE.txt | il y a 3 ans | |
README.md | il y a 3 ans | |
app_customer.py | il y a 5 ans | |
app_dispatcher.py | il y a 5 ans | |
app_product.py | il y a 5 ans | |
basic_display.py | il y a 5 ans | |
python_postgres.png | il y a 3 ans | |
test_pyinquirer.py | il y a 5 ans |
A CLI (Command Line Interface) written in python to query a PostgreSQL database. Lab realized as a student at Ecole Centrale de Nantes (ECN).
What you need to get this project running. These commands were tested on a debian based system (Ubuntu 18.04 LTS).
If not installed yet, you need to get pip, the python package manager :
sudo apt install python3-pip
For easy CLI python interfaces :
sudo pip3 install pyinquirer
To install PostgreSQL driver :
sudo pip3 install postgres
I strongly recommand to know how to run an instance of postgreSQL. The schema is a model of a logistics company.
Install postgreSQL :
sudo apt install postgresql
Start service :
sudo service postgresql start
Create owner of the logistics database.
sudo -u postgres psql -f SQL/create_user.sql
Create the database :
sudo -u postgres psql -f SQL/create_db.sql
Populate database with tables :
sudo -u postgres psql -d logistics -f SQL/create_tables.sql
Grant python to alter these tables :
sudo -u postgres psql -d logistics -f SQL/grant_python.sql
Populate tables with sample data :
sudo -u postgres psql -d logistics -f SQL/populate_tables.sql
If needed you can adapt the password of python_app user (or any user you want) :
sudo -u postgres psql -c "ALTER USER python_app PASSWORD 'blablapoivron'"
Do not forget to adapt the password in the consumer/credentials.py
file.
To do everything in two single command :
sudo -u postgres psql -f SQL/create_user.sql -f SQL/create_db.sql
sudo -u postgres psql -d logistics -f SQL/create_tables.sql -f SQL/grant_python.sql -f SQL/populate_tables.sql
Remove database and python_app db user :
sudo -u postgres psql -f SQL/clear_all.sql
How files are organized.
app_
prefixPython application launched by user. For instance, to run the application as a customer, run the following command
python3 app_customer.py
test_pyinquirer.py
Execute this file with python to check if PyInquirer is correctly installed. No need of PostgreSQL to start this file.
basic_display.py
Contains a class that perform simple prints to show information to users.
cli
cli stands for command line interface. You will find every class which asks inputs to user. That's where the PyInquirer module is used.
consumer
Contains code to interact with the database. The class Consumer in consumer.py
holds a connection to perform SQL queries against the database. If you need to change the credentials used to log on the database, please modify credentials.py
.
SQL
Contains the SQL files used in the prerequisites section to create and populate the logistics
database used by application.
model
Contain simple python classes mapped to relational model. Used in basic_display.py
to get the code more readable.
GNU GPLv3. See LICENSE.txt
.