django实现读取文章图片

原创 Laughing  2018-04-22 12:13  阅读 716 次 评论 0 条

博客内容通过html格式的字符串存储到数据库中,我们前台进行展示的时候,需要读取文章的一个缩略图进行显示。

安装pyquery

pip3 install pyquery

定义模板函数,通过正则表达式读取图片

使用simple_tag

一:定义simple_tag:

  (1)在app目录里创建templatetags目录(名字唯一)

  (2)在templatetags下创建任意py文件(xx.py)

  (3)创建templa对象 register

  (4)编写函数

  1. #自定义simple_tag标签  
  2. @register.simple_tag # 自定义函数前加上filter装饰器  
  3. def getImagePath(content):  
  4.     reg = r"""<img\s.*?\s?src\s*=\s*['|"]?([^\s'"]+).*?>"""# 定义一个正则来匹配页面当中的图片  
  5.     imgre = re.compile(reg)         # 为了让正则更快,给它来个编译  
  6.     #这个时候做个测试,把匹配的数据都给打印出来  
  7.     imglist = re.findall(imgre, content)# 通过正则返回所有数据列表  
  8.     #把这个地址一个一个的拿下来进行下载  
  9.     if(len(imglist)):  
  10.         return imglist[0]  
  11.     else:  
  12.         return '/Content/upload/b07.jpg'  

(5)前台使用

  1. <img src="{% getImagePath topArticle.post_content%}">  
通过自定义filter

在上面的配置基础上:

  1. @register.filter()  
  2. def funcname2(a1,a2):    #最多只能有两个参数  
  3.     return a1+a2  

  HTML:

  1. {{ arg1|函数名:"arg2,arg3" }}   {{ arg1|函数名:数字 }}   
  1. {% load xx %}  
  2. <!DOCTYPE html>  
  3. <html lang="en">  
  4. <head>  
  5.     <meta charset="UTF-8">  
  6.     <title>Title</title>  
  7. </head>  
  8. <body>  
  9.     <p>{{ 'succ'|funcname2:'ess2' }}</p>  
  10. </body>  
  11. </html>  
本文地址:https://www.lisen.me/django-implements-reading-article-pictures.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情