GIT使用Django

08-Django站点管理&Cache缓存

2018-09-18  本文已影响507人  EndEvent

一、Admin站点管理(后台可视化界面操作)

二、富文本

富文本格式(Rich Text Format, 一般简称为RTF)是一种跨平台文档格式,由微软公司开发。大多数的文字处理软件都能读取和保存RTF文档。
富文本格式是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows系统里面的“写字板”就能打开并进行编辑。

- 安装
    pip install django-tinymce

- 配置settings.py文件
    INSTALLED_APPS = [
    ...
    'tinymce',
    ]

- 在setting.py文件添加
    # 富文本
    TINYMCE_DEFAULT_CONFIG = {
        'theme':'advanced',
        'width':600,
        'height':400,
    }

- 创建一个模型类
    from tinymce.models import HTMLField
    class Text(models.Model):
        str = HTMLField()

- 配置站点admin.py
    from .models import Text
    admin.site.register(Text)

创建站点管理员用户: python manage.py createsuperuser

# 添加文章
def artical(request):
    if request.method == 'POST':
        text = Text()
        text.str = request.POST.get('str')
        text.save()
        return HttpResponse('文章提交成功')
    elif request.method == 'GET':
        return render(request, 'addartical.html')

# 文章获取
def getartical(request):
    articals = Text.objects.all()
    artical = articals.last()
  
    return HttpResponse(artical.str)
{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>富文本编辑</title>
    <!--虽然实际文件没有,但会自动放入-->
    <script type="text/javascript" src="{% static 'tiny_mce/tiny_mce.js' %}"></script>
    <script>
        tinyMCE.init({
            'mode': 'textareas',
            'theme': 'advanced',
            'width': 1000,
            'height': 500,
        })
    </script>
</head>
<body>
    <form action="{% url 'app:test01' %}" method="post">
        <textarea name="str"></textarea> <br>
        <input type="submit" name="提交">
    </form>
</body>
</html>

三、MarkDown语法的支持

pip install django-markdown-deux
# settings.py文件中
INSTALLED_APPS = [
    ...
    'markdown_deux',
    ...
]
模版头部载入模块{% load markdown_deux_tags %}
内容调用部分加入过滤器markdown
# models.py文件    文章 模型类
class Book(models.Model):
    title = models.CharField(max_length=180,default='')
    content = models.TextField(default='')  
    def __str__(self):
        return self.title

# admin.py文件 【管理数据表(后台界面中)】
admin.site.register(Book)

# urls.py文件   添加路由
url('^markdownx/$', views.markdownx, name='markdownx'),

# views.py文件  添加视图函数
def markdownx(request):
    book = Book.objects.last()
    return render(request, 'markdownx.html', context={'book':book})

# markdownx.html文件  模板 
{% load markdown_deux_tags %}
{% block content %}
    <h1> {{ book.title }} </h1>
    <div class="main_body">
        {{ book.content|markdown }}
    </div>
{% endblock %}

后台中操作Book模型类(添加数据markdowm语法),前端页面(展示数据)

四、缓存框架

Django 是动态网站,一般来说需要实时地生成访问的网页,展示给访问者,这样内容可以随时变化,也就说请求到达视图函数之后,然后进行模板渲染,将字符串返回给用户,用户会看到相应的html页面。但是从数据库读多次把所需要的数据取出来,要比从内存或者硬盘等一次读出来 付出的成本大很多。
但是如果每次请求都从数据库中请求并获取数据,并且当用户并发量十分大的时候,这将服务器性能将大大受到影响。
因此使用缓存能有效的解决这类问题。如果能将渲染后的结果放到速度更快的缓存中,每次有请求过来,先检查缓存中是否有对应的资源,如果有,直接从缓存中取出来返回响应,节省取数据和渲染的时间,不仅能大大提高系统性能,还能提高用户体验。

五、缓存参数

通过配置缓存参数来控制缓存的性能

六、原生实现缓存

八、Redis实现缓存

上一篇下一篇

猜你喜欢

热点阅读