Django implémente un site Web de musique ⑵

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)

Créer un modèle de tableau

Définir le chemin de téléchargement de l'image

Créer un répertoire de fichiers de téléchargement

générer la migration de table

Exécuter la création de table

Modèle de table de gestion d'arrière-plan

Fonctionnement du modèle de table Singer

Ajouter

modifier supprimer

Optimiser la liste des enregistrements de chanteurs

Résumer


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.

Je suppose que tu aimes

Origine blog.csdn.net/json_ligege/article/details/132046645
conseillé
Classement