由于Django在执行过程中缓存会占用大量内存导致服务器内存不够用,我们可以使用django-extensions来清空缓存,这个比较直接和简单。
流程大致如下
- 安装django-extensions
pip install django-extensions
- 添加到app中
INSTALLED_APPS = (
...
'django_extensions',
...
)
- 执行命令
python manage.py clear_cache --cache defualt # 清理特定缓存
python manage.py clear_cache --all # 清空全部缓存
- 查看
free -m
- nginx相关 记得重启才能生效
uwsgi --reload /Django/项目名/conf/uwsgi.pid
- 应用拓展
- shell_plus: 加强版的Django shell,每次进入为你自动载入项目中所有的model,可以让你很方便的开始调试
- admin_generator: 只要你提供app label,就会自动为你输出定义的Admin Class代码,默认输出在stdout
- clean_pyc: 移除项目中所有的pyc文件
- create_command: 为一个app生成自定义命令所需要的目录结构。
- create_template_tags: 为一个app生成template tag所需要的目录结构。
- clear_cache: 清除缓存,在测试和开发环境很有用
- compile_pyc: 为项目编译python字节码
- describe_form: 生产一个model的form代码,你可以将它拷贝到你的文件
- delete_squashed_migrations: 删除残留的squash migration文件
- dumpscript: 生产一个python 脚本,用来重新填充数据库
- export_emails: 为你的用户生成email地址
- graph_model: 创建基于model的GraphViz2文件.
- mail_debug: 开启一个邮件服务器,它会打印邮件内容而不是把它发送出去
- merge_model_instances: 合并重复的model instance
- notes: 展示代码中所有的 TODO, FIXME, BUG, HACK, WARNING, NOTE, XXX 的地方
- passwd: 轻松修改用户密码
- pipchecker: 检查pip是否有过期的packages,类似于pip * list -o,只用于已安装的packages
- print_settings: 展示所有的,或者指定的django settings
- print_user_for_session: 通过session来找到user,并且打印
- drop_test_database: 删除测试数据库
- reset_db: 使用DROP DATABASE和CREATE DATABASE来重置数据库
- runprofileserver: 开启一个激活了profile功能的开发服务器
- runscript: 在django上下文中运行一个脚本
- runserver_plus: 标准的runserver加上Werkzeug的debugger工具
- set_fake_emails: 根据用户的数据,为所有用户设置一个虚构的email
- show_template_tags: 展示当前项目可用的template tags和template filters
- show_urls: 展示当前项目所有定义的urls
- sqldiff: 展示model和数据库是否结构不一样,如果有不一样的地方就展示出来
- sqlcreate: 根据你的settings.py定义,为你生成创建数据库的SQL代码
- sqldsn: 根据settings.py定义的数据库配置,返回一个可以用于其它程序的数据库URI
- sync_s3: 将MEDIA_ROOT的文件复制到S3
- update_permissions: 重载权限
- validate_templates: 确认template是否有语法错误