位置: 编程技术 - 正文

详解Python的Django框架中manage命令的使用与扩展(python+django)

编辑:rootadmin

推荐整理分享详解Python的Django框架中manage命令的使用与扩展(python+django),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python+django,python dqn,python中的django,python djang,python详细,python dj,python+django,python中的django,内容如对您有帮助,希望把文章链接给更多的朋友!

【简介】

django-admin.py是Django的一个用于管理任务的命令行工具。本文将描述它的大概用法。

另外,在每一个Django project中都会有一个manage.py。manage.py是对django-admin.py的简单包装,它额外帮助我们做了两件事情:

它将你的project的包放到sys.path中它将DJANGO_SETTINGS_MODULE环境变量设置为了你的project的setting.py文件的位置。如果你是通过setup.py工具来安装Django的,那么django-admin.py脚本应该在你的系统目录中。如果不存在,你可以到你的python安装目录下的site-package/django/bin中去找找看。

通常来说,如果你经常是在一个独立的Django project里工作,那么使用manage.py会更方便一些。但如果你有很多Django project,那么可以使用django-admin.py,同时需要经常变更DJANGO_SETTINGS_MODULE或使用?settings选项来设置不同的setting.py。

本文中都会使用django-admin.py来给大家做演示,但所有的例子,都也可以使用manage.py来实现。

【用法】

djang-admin.py的语法为:

其中,subcommand是子命令;options是可选的,可以有0个到多个option。

获得帮助的方法是使用help这个命令,共有两种方法:

1 运行django-admin.py help会显示用法信息,并给出所有可用的subcommand列表

2 运行django-admin.py help <subcommand>会显示特定的subcommand的描述信息,以及所有可用的options

运行django-admin.py ?version可以显示django的版本号。

如果使用django-admin.py时加入?verbosity,则会显示大量通知信息和调试信息。

【runfcgi】- subcommand

用于启动一个支持FastCGI协议的进程,以便接收WebServer发来的请求。可以使用flup作为Python FastCGI模块。

runfcgi的选项如下:

protocol:用于设定所使用的cgi协议,包括fcgi、scgi和ajp等,默认是fcgi。 host:用于设置监听所在的主机名 port:用于设定监听的端口 socket:用于设置监听的UNIX socket method:可以设置为prefork或threaded。默认是prefork。 maxrequests:一个子进程所能处理的请求的最大数量。一旦超过此数量,则子进程会被kill掉,并创建一个新进程。设置为0意味着对子进程无限制。 maxspare:空闲进程/线程的最大数量 minspare:空闲进程/线程的最小数量 maxchildren:进程/线程数的硬限制值 daemonize:为boolean值,表示是否放到后台运行。 pidfile:设置一个文件,用于将产生的PID信息写入。 workdir:用于设置工作目录 debug:为boolean值,用于设置是否开启flup的信息跟踪 outlog:用于设置将标准输出写入到的文件 errlog:用于设置将标准错误输出写入到的文件 umask:用于设置在进程运行时所用的umask。默认是.

举例来说:

此命令用于在后台启动fastCGI,并将pid写入文件中。

【runserver】- subcommand

用于在本机启动一个轻量级的Web server。默认情况下,这个server会在.0.0.1上监听端口。你也可以传入参数来改变默认配置。

如果你并非特权用户,那么你所设置的端口号不能低于,因为小于的端口已经被系统预定了。

一定不要用这个轻量级Server作为你的生产环境下的Server,因为它只能用于开发自测阶段。它既没有安全审计功能,而且又是单线程的。

另外,每来一个请求,Web Server都会从新载入一遍Python代码,因此如果你的代码有改动,不需要重启Web Server即可生效。

你可以在一个project中启动多个fastcgi server,只要设置不同的端口就可以了。

如果你设定的IP为默认的.0.0.1,那么你只能从本机的浏览器来登录浏览,无法从其他机器来访问。为了能让其他机器浏览本机,需要将IP设置为目标机器的IP或者0.0.0.0(IPv4地址)或::(IPv6地址)。

在指定IP地址时,也可以使用主机名或域名来代替。

详解Python的Django框架中manage命令的使用与扩展(python+django)

【shell】- subcommand

用于开启一个Python解释器。

Django默认会使用IPython或bpython。但如果你没有安装它们或者就是要使用简装版的话,可以加上?plain选项,即:

【startapp】- subcommand

在当前路径或指定目录下创建一个Django app的文件夹结构。

默认情况下,文件夹中会包括module.py文件和其他必备文件。

如下命令用于在特定目录下创建一个app:

【startproject】- subcommand

In Django, Projects can have many apps. Apps can be shared among many projects.

在当前目录或指定位置创建一个Django project文件夹结构。

默认情况下,新文件夹中会包括manage.py和一系列必备文件。

目标位置参数是可选的参数,可以设置project所创建的路径。

例如,如下命令可以在指定位置创建一个project:

和startapp命令一样,--template命令准许你指定一个文件夹,文件路径,或者一个自定义项目模板的链接,关于对项目模板的支持可以查看startapp的文档

下面的例子,在创建myproject项目的时候,会在指定的路径查找模板

When Django copies the project template files, it also renders certain files through the template engine: the files whose extensions match the --extension option (py by default) and the files whose names are passed with the --name option. The template context used is:

Any option passed to the startproject commandproject_name -- the project name as passed to the commandproject_directory -- the full path of the newly created projectsecret_key -- a random key for the SECRET_KEY settingPlease also see the rendering warning as mentioned for startapp.

syncdb

这个命令将为以安装的(INSTALLED_APPS)apps创建数据表,如果数据表还没创建的话。

【扩展manage命令】我们都用过Django的django-admin.py和manage.py。django-admin.py是一个命令行工具,可以执行一些管理任务,比如创建Django项目。而manage.py是在创建每个Django project时自动添加在项目目录下的,只是对manage.py的一个简单包装,其功能是将Django project放到sys.path目录中,同时设置DJANGO_SETTINGS_MODULE环境变量为当前project的setting.py文件。

django-admin.py调用django.core.management来执行命令:

excute_from_command_line()函数会根据命令行参数解析出命令的名称,根据命令名称调用相应的Command执行命令。Command位于各个管理模块的commands模块下面。

所谓管理模块,是指在app模块下的名字为management的模块。Django通过django.core.management.find_management_module函数发现"管理模块":

然后通过django.core.management.find_commands函数找到命令类。find_commands函数会在管理模块下查找.py文件,并将.py文件的名称匹配到命令名称:

最后,通过django.core.management.load_command_class函数加载该.py文件中的Command类:

在执行命令的时候,会执行相应Command类的handle方法。所有的Command类都应该是django.core.management.base.BaseCommand的直接或间接子类。

原理搞清楚了,扩展manage命令就很容易了。创建一个app并加入到settings的INSTALLED_APPS中,在该app下面创建management.commands模块,并创建hello.py文件:

就可以使用hello命令了:

用Python写冒泡排序代码 python代码实现冒泡排序代码其实很简单,具体代码如下所示:代码CodehighlightingproducedbyActiproCodeHighlighter(freeware)

Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法 本文实例讲述了Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法。分享给大家供大家参考,具体如下:每天打开电脑第一件事应该就是打开人

Python脚本实现虾米网签到功能 本文实例讲述了Python脚本实现虾米网签到功能的方法。分享给大家供大家参考,具体如下:概述这个脚本完成了自动登录虾米网、签到的功能。大致要

标签: python+django

本文链接地址:https://www.jiuchutong.com/biancheng/385283.html 转载请保留说明!

上一篇:对Python的Django框架中的项目进行单元测试的方法(python django orm)

下一篇:用Python写冒泡排序代码(python冒泡排序流程图)

  • 国际税收协定的名词解释
  • 宁波财税网会计之窗官网
  • 以前年度损益对应的科目
  • 医疗胶片扫描仪怎么用
  • 出口退免税备案
  • 直接计入当期损益的利得和损失,是指( )的利得或损失
  • 税总界定超标准小规模纳税人偷税数额
  • 委托加工应税消费品名词解释
  • 企业线上销售的好处
  • 公司代收生育津贴怎么做账
  • 工资不到3500用交个税吗
  • 哪些人可以享受长护险
  • 房地产企业未出售的房子是否要交房产税
  • 养牛需要活动场地吗
  • 自产自销流程图
  • 未分配利润怎么填
  • 空调安装工程如何做
  • 无偿获得固定资产的会计处理
  • 申报个税按计提工资还是实际发放
  • 查补的增值税如何申报
  • 实收资本的期初余额在借方还是贷方
  • 交通费,通讯费均按照上级行标准领取
  • 政府单位没有税号怎么开普票
  • 库存退回
  • 入库的原材料单价怎么求
  • 如何认定坏账
  • PHP:pg_lo_truncate()的用法_PostgreSQL函数
  • 返利怎么走账
  • 支付厂房租金计入什么科目
  • 商品进销差价的作用
  • 变动成本法计算营业利润
  • 微信第三方登录信息修改
  • 蚁群算法是什么
  • 3d representation
  • 为什么说网络安全靠人民
  • 基于车联网
  • 年应税额是怎么算的
  • 笨办法学python 3电子书下载
  • 固定资产多少金额才算
  • 收据能抵成本吗
  • 预提财务费用
  • 现金收款凭证是发票吗
  • MongoDB的mongo shell常用操作方法及操作脚本笔记
  • sqlsever无法连接到服务器
  • 解决Dede5.6联动类型更改排序数字的BUG
  • 百旺税控盘跨月发票作废
  • 间接费用会计科目
  • mysql数据库在使用时的常见错误号和解决方法有哪些?
  • 财政应返还额度账务处理
  • 城建税的征收范围不包括农村
  • 商业承兑汇票的风险
  • 小规模纳税人购车是怎么抵税的
  • 交易性金融资产入账价值怎么计算
  • 代理服务费计入什么科目
  • 发票入账但是没付款有什么税务风险
  • mysql启动时找不到mysqld.server
  • win8pe无法识别硬盘
  • windowspe安装win7
  • WINDOWS操作系统内置的GUEST
  • win10 1607更新失败
  • ubuntu14升级
  • macbookpro4399小游戏
  • 操作系统的定义
  • win8的系统
  • win1020th2
  • linux批量清空文件内容
  • JavaScript数组删除元素
  • 安卓沉浸式状态栏框架
  • Unity3D游戏开发引擎
  • java程序员准备骑驴找马了,需要怎么准备
  • unity3d webgl
  • js格式化日期yyyy-mm-dd hh:mm:ss
  • android怎么保存项目
  • 浅谈python要进行房价预测的优点和缺点
  • javascript中用于声明变量的关键字
  • android模拟器无法运行
  • 成都国家税务局每个月交全民付的钱是什么
  • 社保扣缴客户端密码
  • 国家税务局发票真伪查验平台
  • 税务部门的扣款协议
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设