django项目之网站性能优化

两个方案:
	页面静态化
	数据库读写分离(参考我之前的博客)

数据库读写分离:
https://blog.csdn.net/weixin_45223595/article/details/108897249

页面静态化:
	减少数据库查询次数
	提升页面响应效率
	
注意点:
	用户相关的数据不能静态化(用户名、购物车)
	动态变化的数据不能静态化(热销排行、推荐、分页排序)
	
不能静态化的数据处理方案:
	在用户得到页面后,在页面中向后端发送Ajax请求获取相应的数据
	直接使用模板渲染

页面静态化实现:

查询页面相关数据
	
# 模拟render(),将一个渲染好的页面写入到文件中
获取页面模板文件
template = loader.get_template('index.html')
渲染页面html字符串
html_text = template.render(context)
将页面html字符串写到指定目录
with open() as f:
	f.write(html_text)

这样做的确实现了页面静态化,但是还要一个问题,页面修改后,不能及时静态化修改后的页面
解决方法:
定时器:(django-crontab)

	安装:
		pip install django-crontab
	注册:
		'django-crontab'
	设置定时任务:
		*****(分时日月周)
		
	定时任务:
		任务时间
		任务方法
		任务日志
		CRONJOBS = [
    ('*/1 * * * *', 'contents.crons.generate_static_index_html', '>> ' + os.path.join(os.path.dirname(BASE_DIR), 'logs/crontab.log'))
]

	解决中文问题:
		CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
	管理定时任务:
		# 添加定时任务到系统中
		python manage.py crontab add

		# 显示已激活的定时任务
		python manage.py crontab show

		# 移除定时任务
		python manage.py crontab remove
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值