Vous voulez faire des rotations sur une liste comme dans l’exemple suivant : l = ["un", "deux", "trois"] # rotate here print l >>> [’trois’, ‘un’, ‘deux’] Les listes python ne nous offre pas directement un système pour faire ce genre de chose, mais il y a un module python qu’il vous faut absolument découvrirLire la suite
Catégorie : Python
Django : https, nginx, uwsgi et is_secure()
Si vous utilisez wsgi avec nginx pour servir vos application Django, vous avez peut être rencontré ce problème : request.is_secure() return false, alors que votre site est bien en HTTPS… La solution est très simple, dans votre fichier de conf Nginx ajoutez: server { listen 443; server_name my_domain.io; ssl on; ssl_certificate /etc/nginx/certificates/certif.crt; ssl_certificate_key /etc/nginx/certificates/certif.key;Lire la suite
Model class django.contrib.contenttypes.models.ContentType doesn’t declare an explicit app_label
En voilà un warning pratique à régler encore. /[…]/python2.7/site-packages/django/contrib/contenttypes/models.py:159: RemovedInDjango19Warning: Model class django.contrib.contenttypes.models.ContentType doesn’t declare an explicit app_label and either isn’t in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class ContentType(models.Model): Et si vous utilisez le module auth, voua aurezLire la suite
gtk_notebook_buildable_add_child: assertion failed: (page != NULL)
Voici une erreur des plus explicite non ? Vraiment ? Le contexte est simple, je suis en train de développer une petite application en python et pour l’interface je pars sur du pyGtk. Comme mon interface est assez simple, j’ai décidé d’utiliser Glade pour la construire. Une simple fenêtre, dans laquelle je met des onglets.Lire la suite
Django : Renommer les fichiers FileFields
Pour des raisons diverses et variées vous pourriez avoir envie de renommer les fichiers que vous enregistrez avec un FileField. Le cas le plus classique est lors de l’upload de fichier par des membres, pour éviter qu’un fichier uploadé n’écrase un ancien fichier vous devez renommer celui-ci pour lui donner un nom unique.
Nous allons voir comment faire cela très simplement avec Django 😉
Django rest framework – Changer le json du login du TokenAuthentication
Le TokenAuthentication à un fonctionnement extrêmement simple, à la connexion l’API retourne un token qu’il faut ensuite passer dans le Header de chaque requête nécessitant d’être connecté.
Le truc vraiment cool, c’est que TokenAuthentication propose directement une view qui s’occupe de connecter un utilisateur. Cependant cette vue ne renvoie que le token, alors que parfois nous aimerions renvoyer plus d’information (l’id de l’utilisateur par exemple).
Voyons comment faire !
Fabric, htaccess et page de maintenance
La mise à jour d’un site web est toujours un moment critique. Même si cela se passe rapidement et sans problème quasiment tout le temps, il vaut mieux indiquer à l’utilisateur final qu’une mise à jour est en cours. Avec Apache et Frabric c’est très rapide !
Fabric – env.hosts et -H pour choisir l’adresse du serveur
Il existe une multitude de solution avec fabric pour indiquer sur quel serveur nous souhaitons exécuter les tâches. Petit tour d’horizon pour mieux comprendre Frabric
Utilisation des sockets non-bloquant en python
Socket en Python L’utilisation des sockets en Python est vraiment simplifié par rapport à d’autre langage comme le C ou le C++. Voici un exemple d’un serveur « echo » qui comme son nom l’indique renvoi au client ce qu’il a envoyé. Pour ce serveur nous utiliserons les sockets non-bloquant. Lien de la doc sockets : http://docs.python.org/library/socket.htmlLire la suite
Utiliser MySQL dans vos programmes Python
Python est un langage interprété qui a de nombreux avantages. Il permet de développer très rapidement et proprement des applications de tous types. Nous allons voir ici comment accéder à une base de données MySQL avec Python de manière très simple. Généralement le problème c’est de commencer, trouver la bonne librairie et de trouver unLire la suite