前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django使用Markdown排版、语法高亮和生成目录

Django使用Markdown排版、语法高亮和生成目录

作者头像
菲宇
发布2019-10-22 14:54:23
5790
发布2019-10-22 14:54:23
举报
文章被收录于专栏:菲宇

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/bbwangj/article/details/98026885

代码语言:javascript
复制
class Entry(models.Model):
    title = models.CharField('文章标题',max_length=128)
    author = models.ForeignKey(User,verbose_name='作者',on_delete=models.CASCADE)
    img = models.ImageField(upload_to='blog_img',null=True,blank=True,verbose_name='博客配图')
    body = models.TextField('正文',)
    abstract = models.TextField('摘要',max_length=256,null=True,blank=True)
    visiting = models.PositiveIntegerField('访问量',default=0)
    category = models.ManyToManyField('Category',verbose_name='博客分类')
    tags = models.ManyToManyField('Tag',verbose_name='标签')
    created_time = models.DateTimeField('创建时间',auto_now_add=True)
    modifyed_time = models.DateTimeField('修改时间',auto_now=True)

    def __str__(self):
        return self.title

    class Meta:
        ordering = ['-created_time']
        verbose_name = '博客正文'
        verbose_name_plural = verbose_name

(1)安装模块

代码语言:javascript
复制
pip install markdown

pip install pygments

(2)views.py

代码语言:javascript
复制
import markdown,pygments

def detail(request,blog_id):
    entry = models.Entry.objects.get(id=blog_id)
    md = markdown.Markdown(extensions=[
        'markdown.extensions.extra',
        'markdown.extensions.codehilite',
        'markdown.extensions.toc',
    ])
    entry.body = md.convert(entry.body)
    entry.toc = md.toc
    entry.increase_visiting()

    return render(request,'blog/detail.html',locals())

(3)detail.html

把github.css放到blog/css里面,detail.html引用样式

代码语言:javascript
复制
{% extends 'blog/base.html' %}
{% load staticfiles %}

{% block title %}博客详情页{% endblock %}
{% block css %}
    <link rel="stylesheet" href="{% static 'blog/css/github.css' %}">
{% endblock %}

标签和正文都加salf

(4)后台添加博客

Markdown语法测试篇

代码语言:javascript
复制
## 1.python语言介绍
   编程语言主要从以下几个角度进行分类:编译型,静态型,动态性,强类型定义语言和弱类型定义语言

 - 编译型:有一个负责翻译的程序来对我们的源代码进行转换,生成对应的可执行代码,这个过程就是编译(Compile),而负责编译的程序就被称为编译器(Compiler)

 - 通常我们所说的动态语言,静态语言是指动态类型语言和静态类型语言
 

## 2.python的优缺点

 - 优点:简单、开发效率高、高级语言、可移植性、可扩展性、可嵌入性

 - 缺点:速度慢,但是相对的、代码不能加密、线程不能利用多CPU问题

## 3.高阶函数
```python
def func():
    print('in the func')
    return foo()
def foo():
    print('in the foo()')
    return 666

res = func()
print(res)
```

前端显示效果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档