Dans une application Django, une couleur est attribuée à chaque "membre" pour l'aider à s'identifier. Cette couleur est stockée dans la base de données, puis imprimée/copiée dans le code HTML lorsque cela est nécessaire. Le seul problème est que je ne sais pas comment générer des couleurs aléatoires. Hex
couleurs en python/django. Il est assez facile de générer des couleurs RVB, mais pour les stocker, je devrais soit a) créer trois colonnes supplémentaires dans mon modèle "Membre", soit b) les stocker toutes dans la même colonne et utiliser des virgules pour les séparer, puis, plus tard, analyser les couleurs pour le HTML. Aucune de ces solutions n'est très attrayante, donc, encore une fois, je me demande comment générer des couleurs aléatoires. Hex
couleurs en python/django.
Réponses
Trop de publicités?Il suffit de les stocker sous la forme d'un nombre entier avec les trois canaux à des décalages de bits différents (comme ils sont souvent stockés en mémoire) :
value = (red << 16) + (green << 8) + blue
(Si chaque canal est compris entre 0 et 255). Enregistrez ce nombre entier dans la base de données et effectuez l'opération inverse lorsque vous devez revenir aux canaux distincts.
Il y a tant de façons de procéder, que voici une démonstration utilisant " colorutils ".
pip install colorutils
Il est possible de générer des valeurs aléatoires en (RGB, HEX, WEB, YIQ, HSV).
# docs and downloads at
# https://pypi.python.org/pypi/colorutils/
from colorutils import random_web
from tkinter import Tk, Button
mgui = Tk()
mgui.geometry('150x28+400+200')
def rcolor():
rn = random_web()
print(rn) # for terminal watchers
cbutton.config(text=rn)
mgui.config(bg=rn)
cbutton = Button(text="Click", command=rcolor)
cbutton.pack()
mgui.mainloop()
J'espère que cela vous a été utile.