需求描述

某公司的项目需要接入大数据,但是项目人员要求只用sql查询。经过通宵达旦的搞了一段时间,终于小有成效。然后我们又做了个大数据开发平台网站,里面放了些开发文档。以为我们队python比较熟悉,又不想在网站上浪费过多时间,选择Django后台发布文章,前端展示。添加个pagedown

如何做?

  1. 安装依赖包(因为使用pagedown,可能不需要markdown,没有测试过)
pip install markdown
pip install django_markdown
pip install django_pagedown
  1. 修改settings.py文件
INSTALLED_APPS = (...#'django_markdown','pagedown',
)
  1. urls.py修改(可能不需要)
   # url('^markdown/', include( 'django_markdown.urls')),
  1. 最重要的来了,在models.py里
...
from pagedown.widgets import AdminPagedownWidget
from django import forms
...
# Register your models here.
# 定义自己的form
class document_category( base ):category_name = models.CharField(max_length=200)insertTime = models.DateTimeField(default=timezone.now)class categoryAdmin(admin.ModelAdmin):list_display = ('category_name','insertTime')search_fields = ['insertTime']# search_fields = ['name']
admin.site.register(document_category,categoryAdmin)class api_document( lrcloud_base ):title =  models.CharField(max_length=200)content = models.TextField()category = models.ForeignKey(document_category)insertTime=models.DateTimeField( default=  timezone.now)class ArticleForm(forms.ModelForm):content = forms.CharField(widget=AdminPagedownWidget())class Meta:model = api_documentfields = '__all__'class ArticleAdmin(admin.ModelAdmin):list_display = ('title', 'content', 'insertTime',)search_fields = ['title']form = ArticleForm#注册的时候绑定
admin.site.register(api_document,ArticleAdmin)

完成这些后,在提交代码,在服务器上执行

python manage.py runserver 0.0.0.0:8080

打开网页,看看是否成功了。

markdown文件如何渲染成html,在模版里展示呢?


class Md2Html:def __init__(self):self.style = Noneself.infile = Noneprint "Ready to init Parser tool!"def parse(self, style=None, content=None):#这里是css,加载风格的,可以从外部文件加载css = '''a {color:#4183C4;}a.absent {color:#cc0000;}a.anchor {display:block;padding-left:30px;margin-left:-30px;cursor:pointer;position:absolute;top:0;left:0;bottom:0;}p,blockquote,ol,dl,table,pre {margin:15px 0;}ul {margin:0;}hr {background:transparent repeat-x 0 0;border:0 none;color:#cccccc;height:4px;padding:0;}body > h2:first-child {margin-top:0;padding-top:0;}body > h1:first-child {margin-top:0;padding-top:0;}body > h1:first-child + h2 {margin-top:0;padding-top:0;}body > h3:first-child,body > h4:first-child,body > h5:first-child,body > h6:first-child {margin-top:0;padding-top:0;}a:first-child h1,a:first-child h2,a:first-child h3,a:first-child h4,a:first-child h5,a:first-child h6 {margin-top:0;padding-top:0;}h1 p,h2 p,h3 p,h4 p,h5 p,h6 p {margin-top:0;}li p.first {display:inline-block;}ul,ol {padding-left:30px;}ul:first-child,ol:first-child {margin-top:0;}ul:last-child,ol:last-child {margin-bottom:0;}dl {padding:0;}dl dt {font-size:14px;font-weight:bold;font-style:italic;padding:0;margin:15px 0 5px;}dl dt:first-child {padding:0;}dl dt >:first-child {margin-top:0;}dl dt >:last-child {margin-bottom:0;}dl dd {margin:0 0 15px;padding:0 15px;}dl dd >:first-child {margin-top:0;}dl dd >:last-child {margin-bottom:0;}blockquote {border-left:4px solid #dddddd;padding:0 15px;color:#777777;}blockquote >:first-child {margin-top:0;}blockquote >:last-child {margin-bottom:0;}table {border-collapse:collapse;padding:0;}table tr {border-top:1px solid #cccccc;background-color:white;margin:0;padding:0;}table tr:nth-child(2n) {background-color:#f8f8f8;}table tr th {font-weight:bold;border:1px solid #cccccc;text-align:left;margin:0;padding:6px 13px;}table tr td {border:1px solid #cccccc;text-align:left;margin:0;padding:6px 13px;}table tr th:first-child,table tr td:first-child {margin-top:0;}table tr th:last-child,table tr td:last-child {margin-bottom:0;}img {max-width:100%;}span.frame {display:block;overflow:hidden;}span.frame > span {border:1px solid #dddddd;display:block;float:left;overflow:hidden;margin:13px 0 0;padding:7px;width:auto;}span.frame span img {display:block;float:left;}span.frame span span {clear:both;color:#333333;display:block;padding:5px 0 0;}span.align-center {display:block;overflow:hidden;clear:both;}span.align-center > span {display:block;overflow:hidden;margin:13px auto 0;text-align:center;}span.align-center span img {margin:0 auto;text-align:center;}span.align-right {display:block;overflow:hidden;clear:both;}span.align-right > span {display:block;overflow:hidden;margin:13px 0 0;text-align:right;}span.align-right span img {margin:0;text-align:right;}span.float-left {display:block;margin-right:13px;overflow:hidden;float:left;}span.float-left span {margin:13px 0 0;}span.float-right {display:block;margin-left:13px;overflow:hidden;float:right;}span.float-right > span {display:block;overflow:hidden;margin:13px auto 0;text-align:right;}pre,code,tt {font-size:12px;font-family:Consolas,"Liberation Mono",Courier,monospace;}code,tt {margin:0;padding:0 5px;white-space:nowrap;border:1px solid #eaeaea;background-color:#f8f8f8;border-radius:3px;}pre code {margin:0;padding:0;white-space:pre;border:none;background:transparent;}.highlight pre {background-color:#f8f8f8;border:1px solid #cccccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;border-radius:3px;}pre {background-color:#cbe9ca;border:1px solid #cccccc;color:#000000;font-size:15px;line-height:19px;overflow:auto;padding:6px 10px;border-radius:3px;}pre code,pre tt {background-color:transparent;border:none;}'''head = """<style scoped>%s</style>""" % (css)try:content = content.decode('gbk').encode('utf-8')except:content = contentcontent = markdown(content, extensions=['markdown.extensions.extra', 'markdown.extensions.codehilite'])
        return head+ content

从外部调用函数后,返回的是html的一个字符串,然后再模板里,吧这些东东放进去。

def show_document(request):documentId = request.GET['id']doc = api_document.objects.get(id=documentId)p = Md2Html.Parser()ret = p.parse('', doc.content)c = Context({"content": ret})t = loader.get_template('apis.html')html = t.render(c)response = HttpResponse(html)

在模板文件apis.html里,要这样使用

{{ content | safe }}

一定要加safe,否则…你懂得吧,试试就知道了~

如何在Django后台添加pagedown相关推荐

  1. django后台添加学生-jquery实现表单正则表达式验证,判断是否可以进行提交

    话不多说,先放图 左边的导航就不放代码了,需要再问 (1)视图模板 (2)路由(urls.p) (3)views.py # GET:向服务器 获取 数据 # POST:向服务器 提交 数据 # 添加学 ...

  2. python3 django html 中文乱码_解决django后台管理界面添加中文内容乱码问题

    在学习使用django做一个简单的个人博客项目,通过admin后台添加中文文章内容的时候,遇到中文内容显示乱码的问题. 排除了网上资料中的提到的几个问题: 1.数据上传默认采用的是unicode编码 ...

  3. 如何在 Django REST Framework 中对分页结果过滤和排序?

    作者 | 大江狗  责编 | 张文 来源 | Python Web 与 Django 开发 (ID:Python_Web_Django) 在本篇文章中我们将向你演示如何在 Django REST Fr ...

  4. 如何在Django中以GROUP BY查询?

    本文翻译自:How to query as GROUP BY in django? I query a model: 我查询一个模型: Members.objects.all() And it ret ...

  5. django 传递中文_如何在Django中建立消息传递状态

    django 传递中文 by Ogundipe Samuel 由Ogundipe Samuel 如何在Django中建立消息传递状态 (How to Build a Message Delivery ...

  6. Python | 7招教你识别一个网站是否是Django后台

    戳蓝字"CSDN云计算"关注我们哦! 作者 l 上海小胖 来源 l Python专栏(ID:xpchuiit) 转载请联系授权(微信ID:pythonzhuanlan) 目录: 1 ...

  7. DJANGO后台ADMIN下拉三级联动,纯JS,没有AJAX数据库回显,目前为止最简单的做法

    网上有很多的DJANGO下拉三级联动,但是都涉及到数据库回显数据操作,操作复杂,本例子是把下拉数据写在JS中,很简单,不需要修改后台太多文件,最下面是一个正常的HTML下拉三级联动文件,我们在这个文件 ...

  8. 如何在Django中优雅的使用pyecharts设计可视化BI系统(多图表)

    这两天琢磨了一下pyecharts这个库,自己总结了一些内容,具体如下: 大多数人在做用python库做数据分析的时候,都在用jupyter,用这个工具是没有错,而且非常方便就可以即时的显示数据,这个 ...

  9. python 写出好看且实用的后台管理-django 后台管理美化

    django 后台管理美化 安装 django-simpleui pip install django-simpleui -i https://pypi.tuna.tsinghua.edu.cn/si ...

最新文章

  1. 5月.CN域名注册量持续上涨至1199万个 净增14万
  2. 在visual studio 2010中调用ffmpeg
  3. 算术表达式求解背景_1.8 C++算术运算符与表达式
  4. Nginx可以做什么?看完这篇你就懂了
  5. tensorflow2.x版本无法调用gpu的一种解决方法
  6. cocos2dx java 调用lua_Cocos2d-x Lua实现从Android回调到Lua的方法
  7. 三大主流软件负载均衡器对比(LVS VS Nginx VS Haproxy)
  8. python中等于列表的某一个值为真,python – 获取值等于特定值的列表中的所有元素...
  9. 《南溪的目标检测学习笔记》——预训练微调的学习笔记
  10. MFC中Doc,View,MainFrmae,App各指针的互相获取
  11. java list 包含字符串_Java8实战:查找列表中包含的字符串
  12. xcode9真机调试
  13. 【笔记】运筹(中)——Rita_Aloha
  14. android 表情包下载,超级表情包app下载
  15. 笔记本硬盘直接安装win7系统教程(不用U盘和PE)
  16. 5G与人工智能有什么关系?
  17. QQ群无法下载视频和图片解决方案
  18. unity游戏开发毕设_《毕业设计(论文)-基于Unity游戏引擎的游戏设计》.doc
  19. Ubuntu下WIFI不稳定问题
  20. 【HTML5】Web前端——网页实用技巧1:将一个方形图片,变成圆形(利用CSS属性)

热门文章

  1. App前端,Web前端,后端,微信小程序到底该学啥?
  2. matlab bsxfun
  3. Unity Steam_VR开发工具插件---VRTK 自带案例分析
  4. Android——Activity的生命周期
  5. linux修复引导工具,linux 修复引导工具
  6. app测试-monkey
  7. Vue3 使用vant actionBar组件后对icon图标的点击切换效果/点击收藏/取消收藏
  8. 双精度改单精度c语言程序,C语言菜鸟基础教程之单精度浮点数与双精度浮点数...
  9. MyEclipse创建jsp项目
  10. HTML(二)列表、表格、表单元素