没有项目描述
django-admin-shell的Python项目详细描述
django管理外壳
django应用程序可以在django管理站点上的项目环境中执行python代码。 您可以使用类似于python manage shell的方法,而无需重新加载环境。
- 用毒物测试:
- Python:2.7,3.4
- django:1.9、1.10、1.11、2.0-dev
- 要求:
- django>;=1.9
- 在浏览器上测试
- 好的-火狐50.1.0-ubuntu 14.04
- 确定-Firefox 31.1-CentOS 6.4
- 好的-铬53.0-ubuntu 14.04
- 确定-Microsoft Edge 38-Windows 10
- 确定-Internet Explorer 11.0-Windows 8.1
- 确定-Internet Explorer 10.0-Windows 7
- 确定-Internet Explorer 9.0-Windows 7
- 错误-Internet Explorer 8.0-Windows 7(Javascripts不工作/控制台工作正常)
屏幕
安装
安装:
pip install django-admin-shell or pip install git+https://github.com/djk2/django-admin-shell.git or after download zip pip install django-admin-shell.zip
将django_admin_shell添加到您已安装的应用程序设置中
settings.py
INSTALLED_APPS = [ ... 'django_admin_shell', ... ]
- 将django_admin_shellurl添加到根url模式(在admin/之上):
urls.py
urlpatterns = [ url(r'^admin/shell/', include('django_admin_shell.urls')), ... url(r'^admin/', admin.site.urls), ]
用法
- shell在url:/admin/shell上可用
- 在默认设置下,用户必须通过django管理站点的身份验证,并且 用户必须具有超级用户权限,并且调试模式必须设置为true。
注意
确保在项目会话中启用
有关会话以及如何启用会话的详细信息,请阅读此处: https://docs.djangoproject.com/en/dev/topics/http/sessions/
Django项目中的默认会话通常为enable
设置
管理员外壳启用
type:bool
default:true
如果shell被启用或禁用。当应用程序被禁用时,则url:/admin/shell return http404 not found
仅限管理员外壳调试模式
type:bool
default:true
如果标志设置为true,则shell仅在调试模式下可用。
如果需要调试模式而禁用调试模式,则url:/admin/shell将返回http 403 forbidden
管理员外壳仅适用于超级用户
type:bool
default:true
如果标志设置为true,则shell仅对具有超级用户权限的用户可用。
如果需要超级用户且用户没有权限,则url:/admin/shell将返回http 403 forbidden
管理外壳输出尺寸
type:integer
默认值:250
标志决定可以记住多少输出。
管理员外壳会话密钥
type:string
default:django_admin_shell_输出
存储上次执行的历史代码的会话中键的名称。
代码示例
显示django设置:
from django.conf import settings for key in dir(settings): val = getattr(settings, key, None) print(key, "=", val)
在操作系统中运行命令并获取输出:
import os os.system('date > /tmp/admin_console.tmp') os.system('echo ------- >> /tmp/admin_console.tmp') os.system('who >> /tmp/admin_console.tmp') os.system('echo ------- >> /tmp/admin_console.tmp') os.system('ps aux | grep python >> /tmp/admin_console.tmp') with open('/tmp/admin_console.tmp', 'r') as f: print(f.read())
运行大python代码(从网站获取python源代码):
import requests req = requests.get('http://foo.bar.com/example.py') if req.status_code == 200: code = req.text print(code, '\n------------\n') exec(code)