Commit 0f369638 authored by Bonnegent Sebastien's avatar Bonnegent Sebastien
Browse files

fix: cours 2

parent 23e9dbd8
Pipeline #8779 passed with stage
in 20 seconds
*~
html/*.html
html/images/
fwm?/Pipfile
fwm?/Pipfile.lock
fwm?-tmp/
env
......@@ -133,6 +133,7 @@ $ cd !$
## Exemple avec pip
~~~bash
$ # à partir du répertoire fwm1
$ sudo apt install python3-pip
$ pip3 install --user -r ../exemples/requirements.txt
$ export PATH=~/.local/bin:$PATH
......@@ -197,46 +198,29 @@ SECRET_KEY = 'Une_clef_secrete_et_longue!'
## Configuration
### Pour générer une nouvelle clé secrête
~~~bash
$ ./manage.py generate_secret_key
$ python ./manage.py generate_secret_key
f#wgrz$@#wh@*x5)_+(*$$^aw(c!q#a4)c0230bwp!iy
~~~
## Gestion des migrations
### Création (si nécessaire)
~~~bash
$ ./manage.py makemigrations
$ python ./manage.py makemigrations
~~~
## Gestion des migrations
### Application
~~~bash
$ ./manage.py migrate
$ python ./manage.py migrate
~~~
![](images/tree-migrate-initial.png)
## Quelques commandes utiles
~~~bash
$ ./manage.py shell
$ python ./manage.py shell
$ # shell avec chargement automatique des modèles
$ # mise à dispo par django_extensions
$ ./manage.py shell_plus
~~~
~~~bash
$ ./manage.py createsuperuser --username admin1 --email ad@min.fr
~~~
## Quelques commandes utiles
### Serveur de développement
~~~bash
$ ./manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
November 02, 2020 - 22:37:51
Django version 3.1.3, using settings 'conf.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
$ python ./manage.py shell_plus
~~~
# Notre projet
......@@ -270,11 +254,11 @@ class Port(models.Model):
## Appliquer les modifications
~~~bash
$ ./manage.py makemigrations
$ python ./manage.py makemigrations
Migrations for 'webui':
webui/migrations/0001_initial.py
- Create model Port
$ ./manage.py migrate
$ python ./manage.py migrate
...
~~~
......@@ -303,7 +287,7 @@ class Migration(migrations.Migration):
]
~~~
## ./manage.py shell
## python ./manage.py shell
~~~python
>>> from webui.models import Port
>>> p = Port()
......@@ -334,7 +318,7 @@ class Port(models.Model):
return f"{ports}({self.get_protocole_display()})"
~~~
## ./manage.py shell\_plus
## python ./manage.py shell\_plus
~~~python
>>> p = Port(debut=80, protocole="tcp", fin=88)
>>> p
......
......@@ -2,21 +2,16 @@
author:
- Sébastien Bonnegent
title: Django par la pratique 2/7
lang: fr
---
# Départ
## Fichiers
- support: cours2.html
### L'ancien
~~~
$ cd fwm1
$ pipenv --rm
~~~
# Départ
## Pour démarrer
[cours2.md](https://gitlab.insa-rouen.fr/bonnegent/cours_django/-/blob/master/cours2.md)
### Le nouveau
~~~
~~~bash
$ git pull
$ cd fwm2
$ pipenv install
~~~
## Au programme
......@@ -25,14 +20,13 @@ $ pipenv install
# Administration
## Serveur de développement
~~~
$ pipenv run ./manage.py runserver
~~~bash
$ python ./manage.py runserver
~~~
- débugger facilement
- permet de tester rapidement le projet
=> http://127.0.0.1:8000
- [http://127.0.0.1:8000](http://127.0.0.1:8000)
## À modifier
### webui/admin.py
......@@ -45,10 +39,14 @@ admin.site.register(Port)
## accéder à l'admin
~~~
$ pipenv run ./manage.py runserver
$ python ./manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
You have 1 unapplied migration(s). Your project may not work
properly until you apply the migrations for app(s): auth.
Run 'python manage.py migrate' to apply them.
System check identified no issues (0 silenced).
November 10, 2019 - 17:53:48
Django version 2.2.6, using settings 'conf.settings'
......@@ -56,7 +54,7 @@ Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
~~~
=> http://127.0.0.1:8000/admin
=> [http://127.0.0.1:8000/admin](http://127.0.0.1:8000/admin)
## problème
Il faut un utilisateur ! :)
......@@ -65,19 +63,19 @@ Il faut un utilisateur ! :)
## créer un utilisateur
~~~
$ pipenv run ./manage.py createsuperuser
Nom d'utilisateur (leave blank to use 'bonnegent'): admin
Adresse électronique: ad@min.fr
$ python ./manage.py createsuperuser --username admin \
--email ad@min.fr
Password:
Password (again):
Le mot de passe est trop semblable au champ « nom d'utilisateur ».
Le mot de passe est trop semblable au champ « nom dutilisateur ».
Ce mot de passe est trop court. Il doit contenir au minimum 8 caractères.
Ce mot de passe est trop courant.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
~~~
## ./manage.py shell_plus
## python ./manage.py shell_plus
~~~python
In [1]: User.objects.all()
Out[1]: <QuerySet [<User: admin>]>
......@@ -157,8 +155,8 @@ class Service(AvecNom):
~~~
~~~
$ pipenv run ./manage.py makemigrations
$ pipenv run ./manage.py migrate
$ python ./manage.py makemigrations
$ python ./manage.py migrate
~~~
## Administration
......@@ -170,7 +168,7 @@ $ pipenv run ./manage.py migrate
- web: 80/tcp, 443/tcp
- dns: 53/udp
## shell_plus
## python ./manage.py shell_plus
~~~python
web = Service.objects.get(nom="web")
p22 = Port.objects.get(debut=22)
......@@ -186,7 +184,8 @@ Out[6]: <QuerySet [<Port: 80(tcp)>, <Port: 443(tcp)>]>
In [7]: web.ports.add(p22)
In [8]: web.ports.all()
Out[8]: <QuerySet [<Port: 22(tcp)>, <Port: 80(tcp)>, <Port: 443(tcp)>]>
Out[8]: <QuerySet [<Port: 22(tcp)>, <Port: 80(tcp)>,
<Port: 443(tcp)>]>
In [9]: web.ports.remove(p22)
In [10]: web.ports.all()
......@@ -212,7 +211,8 @@ Out[25]: <QuerySet [<Service: dns>, <Service: ldap>,
<Service: web>, <Service: web>]>
In [26]: filtre(ports__debut__gt=22).distinct()
Out[26]: <QuerySet [<Service: dns>, <Service: ldap>, <Service: web>]>
Out[26]: <QuerySet [<Service: dns>, <Service: ldap>,
<Service: web>]>
~~~
## Relation inverse
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment