Django Markdownx的使用记录

1. 安装

pip install django-markdownx

2. 配置

# settings.py

INSTALLED_APP = (
	# [...]
	"markdownx",
)

3. 添加路由

# 总的urls.py中

urlpatterns = [
	# path ...,
	
	# 第三方应用
	path("markdownx/", include("markdownx.urls"),
]

4. 在模型类中的使用方式

from markdownx.models import MarkdownxField
from markdownx.utils import markdownify

class Mymodel(models.Model):
	myfield = MarkdownxField()

	def get_markdown(self):
		"""将Markdown文本转换成HTML"""
		return markdownify(self.content)

5. 在表单中的使用

from django import forms
from markdownx.fields import MarkdownxFormField

from models import Mymodel

class MyForm(forms.ModelForm):
	myfield = MarkdownxFormField()
	
	class Meta:
		model = Mymodel
		fields = []

6. 在前端模板中的使用

<form method="POST" action="">{% csrf_token %}
	{{ form }}
</form>

{{ form.media }}   # 这个就是预览markdown

6. 把MarkdownX的静态文件生成到我们自己的STATIC_ROOT

python3 manage.py collectstatic

最后:

默认是预览在下面,如果想要更改成像GitHub那样:

# settins.py中添加
INSTALLED_APP = (
	# [...]
	"markdownx",
	"django.forms"
)

# 更改查找组件模板的顺序
FROM_RENDERER = "django.forms.renderers.TemplatesSetting"

# templates/markdownx/widget2.html
改两个<li />为编辑和预览

如果想要更改向后端发送请求的延时:

# settings.py中添加

MARKDOWNX_SERVER_CALL_LATENCY = 2000   # 更改为2秒
发布了70 篇原创文章 · 获赞 45 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_38727847/article/details/104339649