Maison > développement back-end > Tutoriel Python > Django vous apprend à maîtriser l'éditeur de texte enrichi CKEditor

Django vous apprend à maîtriser l'éditeur de texte enrichi CKEditor

Y2J
Libérer: 2017-04-24 11:51:50
original
1763 Les gens l'ont consulté

Récemment, j'ai besoin d'utiliser l'éditeur de texte riche dans l'administrateur de Django. Puisque je préfère l'éditeur de texte riche CKEditor, j'ai cet article qui vous le présente principalement Comment l'utiliser facilement. l'éditeur de texte enrichi CKEditor dans Django, les amis dans le besoin peuvent s'y référer.

Avant-propos

Django est un web framework facile à démarrer rapidement, utilisez-le pour créer du contenu pilotés par 🎜> (tels que les blogs indépendants) sont très pratiques. Malheureusement, Django ne fournit pas d'éditeur de texte enrichi officiel, ce qui s'avère être un contrôle indispensable dans la gestion backend des sites Web basés sur le contenu. ckeditor est un éditeur de pages Web open source largement utilisé basé sur javascript. Il peut être combiné avec une variété de langages de programmation, et python ne fait certainement pas exception. Cet article explique comment utiliser parfaitement ckeditor dans un système de blog basé sur Django.

Comment utiliser

1. Installer

pip install django-ckeditor
Copier après la connexion
2. Modifiez INSTALLED_APPS dans 'ckeditor'settings.py.

3. Puisque djang-ckeditor utilise JQuery dans le fichier ckeditor-init.js, vous devez définir CKEDITOR_JQUERY_URL dans settings.py pour spécifier le chemin de la bibliothèque JQuery, par exemple :

CKEDITOR_JQUERY_URL ='https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'
Copier après la connexion
4. Définissez STATIC_ROOT, exécutez

et copiez les ressources multimédia requises par CKEditor dans le chemin spécifié par STATIC_ROOT. python manage.py collectstatic

STATIC_ROOT = os.path.join(BASE_DIR,'static/')
Copier après la connexion

Django vous apprend à maîtriser l'éditeur de texte enrichi CKEditor

5,

from django.db import models
from ckeditor.fields import RichTextField

class Blog(models.Model):
 title = models.CharField(max_length=50,verbose_name="标题")
 content = RichTextField(blank=True,null=True,verbose_name="内容")

 def unicode(self):
 return self.name
Copier après la connexion
Effet :

Django vous apprend à maîtriser l'éditeur de texte enrichi CKEditor

Téléchargement de fichiers

1. Ajoutez ckeditor_uploader dans INSTALLED_APPS dans settings.py

2 CKEditor utilise le stockage

API de Django, par défaut lors de l'utilisation. Le stockage de fichiers de Django, MEDIA_ROOT et MEDIA_URL sera utilisé, qui doivent être définis dans settings.py. De plus, CKEDITOR_UPLOAD_PATH peut également être spécifié, qui se trouve sous MEDIA_ROOT :

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
CKEDITOR_UPLOAD_PATH = 'uploads/'
Copier après la connexion
3. Dans le fichier du projet. urls.py Ajoutez le mappage d'URL de CKEditor

url(r'^ckeditor/', include('ckeditor_uploader.urls')),
Copier après la connexion
Sinon, l'erreur suivante peut se produire :

Django vous apprend à maîtriser l'éditeur de texte enrichi CKEditor

4 (Facultatif) Dans les paramètres. py Ajoutez CKEDITOR_IMAGE_BACK

END, activez les vignettes, par exemple :

CKEDITOR_IMAGE_BACKEND = 'PIL'
Copier après la connexion
from ckeditor_uploader.fields import RichTextUploadingField
class Post(models.Model):
 content = RichTextUploadingField()
Copier après la connexion

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal