Utiliser le framework Python Django pour faire un site web musical, continuer à développer sur la base de la série 1,
Cet article concerne principalement le développement du module de table de chanteur de fond.
Table des matières
conception de structure de table
Structure de table de chanteur (chanteur)
Définir le chemin de téléchargement de l'image
Créer un répertoire de fichiers de téléchargement
Modèle de table de gestion d'arrière-plan
Fonctionnement du modèle de table Singer
Optimiser la liste des enregistrements de chanteurs
conception de structure de table
Structure de table de chanteur (chanteur)
champ |
taper |
note |
identifiant |
entier(11) |
identifiant de table de chanteur |
nom |
vachar(50) |
nom d'utilisateur |
pinyin |
vachar(50) |
Nom pinyin |
portrait |
varchar(200) |
Lien avatar |
première lettre |
varchar(15) |
initiales |
genre |
minuscule(2) |
Sexe 0 femme 1 homme |
anniversaire |
varchar(20) |
Anniversaire |
hauteur |
entier(4) |
Hauteur (cm) |
poids |
entier(3) |
poids (kg) |
constellation |
vachar(50) |
constellation |
numéro_singe |
entier(11) |
Nombre de célibataires |
album_num |
entier(11) |
nombre d'albums |
desc |
texte(0) |
Introduction |
Ajouter du temps |
entier(11) |
Ajouter du temps |
temps de mise à jour |
entier(11) |
modifier l'heure |
Créer un modèle de tableau
Créez un modèle de table de chanteur dans models.py sous le répertoire du projet du lecteur.
Le contenu est le suivant :
from django.db import models
from datetime import date, datetime
# Create your models here.
class Singler(models.Model):
""" 歌手表模型 """
name = models.CharField(max_length=50, help_text='请输入歌手名称')
first_letter = models.CharField(max_length=15, help_text='请输入歌手名称首字母')
# 设置上传位置
portrait = models.ImageField(upload_to='uploads/%Y%m%d%H/', help_text='请上传歌手照片')
birthday = models.DateField(default=date.today, help_text='请选择歌手生日')
height = models.IntegerField(help_text='请输入歌手身高(cm)', default=0, blank=True)
weight = models.IntegerField(help_text='请输入歌手体重(kg)', default=0, blank=True)
constellation = models.CharField(max_length=50, help_text='请输入歌手星座')
singe_num = models.IntegerField(default=0)
album_num = models.IntegerField(default=0)
desc = models.TextField(help_text='请输入歌手简介')
addtime = models.DateTimeField(auto_now_add=True)
updatetime = models.DateTimeField(auto_now=True)
Définir le chemin de téléchargement de l'image
Situé au bas de myMusic/settings.py.
# 设置文件上传位置
MEDIA_ROOT = 'static/'
Créer un répertoire de fichiers de téléchargement
Créez un dossier statique sous le répertoire myMusic.
Comme indiqué sur l'image :
générer la migration de table
python manage.py makemigrations
Processus de mise en œuvre:
Exécuter la création de table
python manage.py migrate
Créez une structure de table comme suit :
CREATE TABLE `player_singler` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`first_letter` varchar(15) NOT NULL,
`portrait` varchar(100) NOT NULL,
`birthday` date NOT NULL,
`height` int(11) NOT NULL,
`weight` int(11) NOT NULL,
`constellation` varchar(50) NOT NULL,
`singe_num` int(11) NOT NULL,
`album_num` int(11) NOT NULL,
`desc` longtext NOT NULL,
`addtime` datetime(6) NOT NULL,
`updatetime` datetime(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
Modèle de table de gestion d'arrière-plan
Enregistrez le modèle de table de chanteur en arrière-plan dans admin.py sous le répertoire du lecteur.
from django.contrib import admin
from .models import Singler
# Register your models here.
class SinglerAdmin(admin.ModelAdmin):
pass
admin.site.register(Singler, SinglerAdmin)
Fonctionnement du modèle de table Singer
Ajouter
Cliquez sur le bouton Ajouter à côté du modèle de table pour accéder à l'interface Ajouter et ajouter un nouvel enregistrement de chanteur.
Après avoir écrit, cliquez sur le bouton Enregistrer en bas ; une fois l'ajout réussi, vous pouvez afficher le nouvel enregistrement dans la liste.
modifier supprimer
Dans la liste des données du modèle de table, cliquez pour entrer les détails des données du chanteur.
Les détails des données du chanteur peuvent être modifiés ou cliquez sur le bouton de suppression ci-dessous pour supprimer les données.
Optimiser la liste des enregistrements de chanteurs
Modifiez player/admin.py.
from django.contrib import admin
from .models import Singler
# Register your models here.
class SinglerAdmin(admin.ModelAdmin):
# 列表页属性
def get_name(self):
return self.name
get_name.short_description = '歌手名称'
def get_portrait(self):
return self.portrait
get_portrait.short_description = '歌手头像'
def get_constellation(self):
return self.constellation
get_constellation.short_description = '星座'
def get_height(self):
return str(self.height) + 'cm'
get_height.short_description = '身高'
def get_weight(self):
return str(self.weight) + 'kg'
get_weight.short_description = '体重'
def get_addtime(self):
return self.addtime
get_addtime.short_description = '创建时间'
def get_updatetime(self):
return self.updatetime
get_updatetime.short_description = '更新时间'
# 显示字段
list_display = ['id', get_name, get_portrait, get_constellation, get_height, get_weight, get_addtime, get_updatetime]
# 过滤器
list_filter = ['name', 'constellation']
# 搜索
search_fields = ['name', 'constellation']
# 分页
list_per_page = 5
admin.site.register(Singler, SinglerAdmin)
Effet:
Résumer
Dans Django, la séquence d'opérations de la table de données à l'arrière-plan est :
Créer un modèle de table -> Créer un fichier de migration de table -> Exécuter la migration de table -> Enregistrement en arrière-plan.
L'optimisation est une gestion personnalisée en arrière-plan ;
Pour compliquer les choses, toutes les modifications de manipulation de table nécessitent la création et l'exécution de migrations de table.