美文网首页Django
django2.0学习笔记2(哔哩哔哩杨世航)

django2.0学习笔记2(哔哩哔哩杨世航)

作者: 假装我不帅 | 来源:发表于2019-02-16 08:59 被阅读0次

博客后台富文本编辑

  • 简单文本编辑器->直接贴入HTML代码
    打开blog_detail.html找到
<div class="blog-content"> {{blog.content}}</div>

改为:

<div class="blog-content"> {{ blog.content|safe }}</div>
{#显示html#}

打开blog_list.html找到博客内容里面的一句话:

<p>{{ blog.content|truncatechars:50 }}</p>

改为:

<p>{{ blog.content|striptags|truncatechars:50 }}</p>
{#过滤标签#}
  • 富文本编辑->最终解析成HTML:富文本编辑器和markdown编辑器
    使用djnago-ckeditor
    选择标准:
  • 具有基本的富文本编辑功能
  • 可以上传图片
  • 可以查看源代码
  • 有持续更新
  1. 安装 pip install django-ckeditor
  2. 注册应用 'ckeditor',
  3. 配置model 把字段改成RichTextField 打开blog app下的models.py,添加如下代码:

    from ckeditor.fields import RichTextField
    content = RichTextField()
    
python manage.py makemigrations
python manage.py migrate

打开http://127.0.0.1:8000/admin 进入修改界面如下: 5.png
进入blog.css,把
/*div.blog-content{ text-indent: 2em; }*/
注释掉 上传图片功能
  1. 安装 pip install pillow
  2. 注册应用:'ckeditor_uploader',
  3. 配置settings python #media配置 MEDIA_RUL="/media/" MEDIA_ROOT=os.path.join(BASE_DIR,"media") #配置ckeditor CKEDITOR_UPLOAD_PATH='upload/' 在mysite总文件夹下创建media文件夹
  4. 配置url,打开mysite下的urls.py,添加一条代码:path('ckeditor',include('ckeditor_uploader.urls')),
    https://pypi.org/project/django-ckeditor/ settings.py添加如下代码:
    #media配置
     MEDIA_RUL="/media/"
     MEDIA_ROOT=os.path.join(BASE_DIR,"media")
     #配置ckeditor
     CKEDITOR_UPLOAD_PATH='upload/'
    
    urls.py天下如下代码:
    from django.confimport settings 
    from django.conf.urls.static import static
    # 建议只在开发的时候使用
    

urlpatterns+=static(settings.MEDIA_RUL,document_root=settings.MEDIA_ROOT)

5. 配置model 把字段改为RichTextUploadingField 
```python from
   ckeditor_uploader.fields import RichTextUploadingField content=RichTextUploadingField()
python manage.py makemigrations 
python manage.py migrate

博客阅读简单计数

1. 简单计数处理

1.blog模型添加字段记录 2.每次有人开打记录数加1

打开blog app下的models.py 在blog类下添加一行代码:

readed_num=models.IntegerField(default=0)

blog app 下的admin.py下的BlogAdmin添加一个字段

list_display=("title","blog_type","author","readed_num","created_time","last_update_time")

cmd下运行

python manage.py makemigrations 
python manage.py migrate

打开blog app下的views.py下的blog_detail函数
添加如下代码:

blog.readed_num +=1
blog.save()

但是要注意的是最后的更新时间也随之更改了 打开blog_detail.html 在<ul
class="blog-info-description">里面添加一行代码: <li>阅读:({{ blog.readed_num }})</li> 修改blog.css代码:
2em; }

把2em改为1em



打开blog_list.html,在如图所示的地方添加代码:




怎样才算阅读一次
  • 无视是否同一个人每次打开都记录
  • 若是同一个人,没隔多久打开才算阅读一次 利用cookie实现阅读计数规则
    打开blog app下的views.py的blog_detail处理函数
response=render_to_response("blog/blog_detail.html",context)#响应
response.set_cookie(key='blog_{}_readed'.format(blog_pk),value='true')#保存相关数据dict,有效期60秒,如果默认则是浏览器关闭cookie失效 ,max_age=60,expires=datetime
return response

打开blog app下的views.py的blog_detail处理函数 :

 if not request.COOKIES.get('blog_{}_readed'.format(blog.pk)):
        blog.readed_num += 1
        blog.save()

该方法缺点:

  • 后台编辑博客可能影响数据
  • 功能单一无法统计某一天的阅读数

相关文章

网友评论

    本文标题:django2.0学习笔记2(哔哩哔哩杨世航)

    本文链接:https://www.haomeiwen.com/subject/dwfbeqtx.html