html 页面展示txt文件,Django项目中通过页面展示txt等文本文件内容

关键代码就一行:通过for迭代器用open打开文件逐行读取后写入数组。

log_content += [line for line in open(log_file, 'r', encoding='UTF-8')]

其中加encoding参数的目的是避免报错:

"UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence"

然后再模板中再加个highlight.js,效果就更好了。

view.py

class JobLogView(LoginRequiredMixin, View):

template_name = 'config/joblog.html'

def get(self, request, *args, **kwargs):

job_id = kwargs.get('job_id')

log_id = kwargs.get('log_id')

log_file = 'logs/tasks/' + log_id + '.log'

log_content = []

log_content += [line for line in open(log_file, 'r', encoding='UTF-8')]

context = {

'page_name': '作业日志',

'log_content': log_content,

}

return render(request, self.template_name, context=context)

joblog.html

{% for line in log_content %}{{ line }}{% endfor %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值