Django에서 마크 다운을 사용하여 블로그를 작성하는 방법 (Tex도 사용 가능)
7478 단어 장고Markdown장고-mdeditor
개요
django를 사용하여 블로그를 쓰려고 여러가지 모색하고 있었는데, 엄청 간단하게 Qiita와 같이 블로그를 쓰는 방법을 발견했으므로, 그것에 대해 써 갑니다.
Admin에 로그인하면 아래 그림과 같은 텍스트 필드가 나타납니다.
환경
장고 = 2.2.5
python=3.8.2
PC : mac(catalina)
사용할 패키지
이번에는 장고-mdeditor을 사용합니다.
패키지 설치
pip install django-mdeditor
또는
pipenv install django-mdeditor
로 설치합니다.
settings.py 변경
settings.py의
INSTALLED_APPS
에 'mdeditor'
를 추가합니다.INSTALLED_APPS = [
...
'mdeditor',
]
django3 이상을 사용하는 경우 프레임 설정을 추가합니다.
X_FRAME_OPTIONS = 'SAMEORIGIN'
mediaURL을 추가하지 않은 경우 추가합니다.
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'
urls.py 설정
urlpatterns에 미디어를 추가합니다.
from django.conf.urls import url, include
from django.conf.urls.static import static
from django.conf import settings
...
urlpatterns = [
...
]
if settings.DEBUG:
# static files (images, css, javascript, etc.)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
모델 만들기
그런 다음 간단한 모델을 만듭니다.
from django.db import models
from mdeditor.fields import MDTextField
class Article(models.Model):
title = models.CharField(max_length=200)
body = MDTextField()
def __str__(self):
return self.title
작성한 후
python manage.py makemigrations
및 python manage.py migrate
를 순서대로 실행하십시오.이것으로 모델 작성이 완료됩니다.
Admin에 로그인하면 아래 그림과 같은 텍스트 필드가 나타납니다.
양식으로 표시하는 경우
앱의 form.py에 다음과 같은 form을 만듭니다.
app-name/forms.py
class MDEditorModleForm (forms.ModelForm):
class Meta:
model = Article
fields = '__all__'
마지막으로 템플릿 파일로 다음을 추가합니다.
{% load static%}
<! DOCTYPE html>
<html lang = "en">
<head>
<meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" />
</ head>
<body>
<form method = "post" action = "./">
{% csrf_token%}
{{form.media}}
{{form.as_p}}
<p> <input type = "submit" value = "post"> </ p>
</ form>
</ body>
</ html>
이제 웹에서도 비슷한 텍스트 필드를 볼 수 있습니다.
툴바 변경
다음을 settings.py에 추가하여 툴바를 변경할 수 있습니다.
MDEDITOR_CONFIGS = {
'default':{
'width': '90% ', # Custom edit box width
'heigth': 500, # Custom edit box height
'toolbar': ["undo", "redo", "|",
"bold", "del", "italic", "quote", "ucwords", "uppercase", "lowercase", "|",
"h1", "h2", "h3", "h5", "h6", "|",
"list-ul", "list-ol", "hr", "|",
"link", "reference-link", "image", "code", "preformatted-text", "code-block", "table", "datetime"
"emoji", "html-entities", "pagebreak", "goto-line", "|",
"help", "info",
"||", "preview", "watch", "fullscreen"], # custom edit box toolbar
'upload_image_formats': ["jpg", "jpeg", "gif", "png", "bmp", "webp"], # image upload format type
'image_folder': 'editor', # image save the folder name
'theme': 'default', # edit box theme, dark / default
'preview_theme': 'default', # Preview area theme, dark / default
'editor_theme': 'default', # edit area theme, pastel-on-dark / default
'toolbar_autofixed': True, # Whether the toolbar capitals
'search_replace': True, # Whether to open the search for replacement
'emoji': True, # whether to open the expression function
'tex': True, # whether to open the tex chart function
'flow_chart': True, # whether to open the flow chart function
'sequence': True, # Whether to open the sequence diagram function
'watch': True, # Live preview
'lineWrapping': False, # lineWrapping
'lineNumbers': False # lineNumbers
}
}
참고
Reference
이 문제에 관하여(Django에서 마크 다운을 사용하여 블로그를 작성하는 방법 (Tex도 사용 가능)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hayato1130/items/f4e84ef9ec3abb5e453c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)