您的位置:首页 > 编程语言 > Go语言

django manage.py runserver(runfcgi)等各种功能

2016-08-23 16:30 316 查看
【简介】

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的语法为:

django-admin.py <subcommand> [options]

manage.py <subcommand> [options]


其中,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。默认是022.

举例来说:
django-admin.py runfcgi socket=/tmp/fcgi.sock method=prefork daemonize=true \
pidfile=/var/run/django-fcgi.pid


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

【runserver】- subcommand

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

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

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

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

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

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

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

【shell】- subcommand

用于开启一个Python解释器。

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


【startapp】- subcommand

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

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

如下命令用于在特定目录下创建一个app:
django-admin.py startapp myapp /Users/jezdez/Code/myapp


【startproject】- subcommand

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

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

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

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

例如,如下命令可以在指定位置创建一个project:
django-admin.py startproject myproject /Users/jezdez/Code/myproject_repo


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

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

django-admin.py startproject --template=/users/jezdez/code/my_project_template 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 command

project_name -- the project name as passed to the command

project_directory -- the full path of the newly created project

secret_key -- a random key for the SECRET_KEY setting

Please also see the rendering warning as mentioned for startapp.

syncdb

django-admin.py syncdb

这个命令将为以安装的(INSTALLED_APPS)apps创建数据表,如果数据表还没创建的话
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息