Python论坛  - 讨论区

标题:[python-chinese] django中自带的server,按ctrl+C就结束server是怎样实现的?

2006年09月12日 星期二 17:14

鳄鱼 crocodile.liu在163.com
星期二 九月 12 17:14:23 HKT 2006

django中自带的server,按ctrl+C就结束server是怎样实现的?


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月12日 星期二 17:28

jetrix chan jetrixc在gmail.com
星期二 九月 12 17:28:30 HKT 2006

is shell?

2006/9/12, 鳄鱼 <crocodile.liu在163.com>:
>
> django中自带的server,按ctrl+C就结束server是怎样实现的?
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
Best Regards,
         Jetrix Chan
----
jetrixc在gmail.com
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20060912/43c22652/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月12日 星期二 17:37

鳄鱼 crocodile.liu在163.com
星期二 九月 12 17:37:37 HKT 2006

jetrix chan 写道:
> is shell?
>
> 2006/9/12, 鳄鱼 <crocodile.liu在163.com crocodile.liu在163.com>>:
>
>     django 中自带的server,按ctrl+C就结束server是怎样实现的?
>
就是运行manage.py runserver 后

Validating models...
0 errors found.

Starting server on port 8000 with settings module 'newtest.settings'.
Go to http://127.0.0.1:8000/ for Django.
Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).

怎样实现Quit the server with CONTROL-C?



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月12日 星期二 17:41

IQDoctor huanghao.c在gmail.com
星期二 九月 12 17:41:22 HKT 2006

没用过 django, 不过应该就是截获 Ctrl+C 信号吧, 作些清除工作,在把自己quit掉吧/

python 有 signal 相关模块。


2006/9/12, jetrix chan <jetrixc at gmail.com>:
> is shell?
>
> 2006/9/12, 鳄鱼 <crocodile.liu at 163.com>:
> > django中自带的server,按ctrl+C就结束server是怎样实现的?
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to
> python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> python-chinese-request at lists.python.cn
> > Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
> --
> Best Regards,
>          Jetrix Chan
> ----
> jetrixc at gmail.com
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request at lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>


-- 
Best regrads,
IQDoctor

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月12日 星期二 18:09

vcc vcc在163.com
星期二 九月 12 18:09:48 HKT 2006

真的很懒,只要search一下源代码 CTRL-BREAK ,就差不多可以知道了。
有源码不看也是白搭 ;-) 
不要去猜,也不要去乱试,看看源代码。

----- Original Message ----- 
From: "鳄鱼" <crocodile.liu at 163.com>
To: <python-chinese at lists.python.cn>
Sent: Tuesday, September 12, 2006 5:37 PM
Subject: Re: [python-chinese] django中自带的server,按ctrl+C就结束server是怎样实现的?


> jetrix chan 写道:
>> is shell?
>>
>> 2006/9/12, 鳄鱼 <crocodile.liu at 163.com crocodile.liu at 163.com>>:
>>
>>     django 中自带的server,按ctrl+C就结束server是怎样实现的?
>>
> 就是运行manage.py runserver 后
> 
> Validating models...
> 0 errors found.
> 
> Starting server on port 8000 with settings module 'newtest.settings'.
> Go to http://127.0.0.1:8000/ for Django.
> Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).
> 
> 怎样实现Quit the server with CONTROL-C?
> 
> 
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月12日 星期二 18:14

yi huang yi.codeplayer在gmail.com
星期二 九月 12 18:14:38 HKT 2006

>
> django中自带的server,按ctrl+C就结束server是怎样实现的?
>

>>> try:
...   while True:
...     pass
... except KeyboardInterrupt:
...   print 'exit'
...
exit


^_^

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
qÓ0¶­µ§!™éíÁ«,r»›mçTD¸m¶Ÿÿ§+a¢w'þ˜©z¹šŠ_éÊØhÈbëý«miÈfz{lÿm4ëOuÛÿ[wÍÝñÿڶ֜†g§¶f

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月13日 星期三 10:03

鳄鱼 crocodile.liu在163.com
星期三 九月 13 10:03:06 HKT 2006

yi huang 写道:
>
>     django中自带的server,按ctrl+C就结束ser
>     ver是怎样实现的?
>
>
> >>> try:
> ...   while True:
> ...     pass
> ... except KeyboardInterrupt:
> ...   print 'exit'
> ...
> exit
>
>
> ^_^
>
django中的这一段并没有用while来循环,它怎样来结束的
        try:
            run(addr, int(port), AdminMediaHandler(WSGIHandler()))
        except WSGIServerException, e:
            # Use helpful error messages instead of ugly tracebacks.
            ERRORS = {
                13: "You don't have permission to access that port.",
                98: "That port is already in use.",
                99: "That IP address can't be assigned-to.",
            }
            try:
                error_text = ERRORS[e.args[0].args[0]]
            except (AttributeError, KeyError):
                error_text = str(e)
            sys.stderr.write(style.ERROR("Error: %s" % error_text) + '\n')
            sys.exit(1)
        except KeyboardInterrupt:
            sys.exit(0)

> -- 
> http://codeplayer.blogspot.com/
>   



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月13日 星期三 10:08

limodou limodou在gmail.com
星期三 九月 13 10:08:50 HKT 2006

On 9/13/06, 鳄鱼 <crocodile.liu在163.com> wrote:
> yi huang 写道:
> >
> >     django中自带的server,按ctrl+C就结束ser
> >     ver是怎样实现的?
> >
> >
> > >>> try:
> > ...   while True:
> > ...     pass
> > ... except KeyboardInterrupt:
> > ...   print 'exit'
> > ...
> > exit
> >
> >
> > ^_^
> >
> django中的这一段并没有用while来循环,它怎样来结束的
>         try:
>             run(addr, int(port), AdminMediaHandler(WSGIHandler()))
>         except WSGIServerException, e:
>             # Use helpful error messages instead of ugly tracebacks.
>             ERRORS = {
>                 13: "You don't have permission to access that port.",
>                 98: "That port is already in use.",
>                 99: "That IP address can't be assigned-to.",
>             }
>             try:
>                 error_text = ERRORS[e.args[0].args[0]]
>             except (AttributeError, KeyError):
>                 error_text = str(e)
>             sys.stderr.write(style.ERROR("Error: %s" % error_text) + '\n')
>             sys.exit(1)
>         except KeyboardInterrupt:
>             sys.exit(0)
>
run应该就是一个循环,如果你中途按了Ctrl+C了,会引发一个KeyboardInterrupt异常,于是退出。

-- 
I like python!
My Blog: http://www.donews.net/limodou
UliPad Site: http://wiki.woodpecker.org.cn/moin/UliPad
UliPad Maillist: http://groups.google.com/group/ulipad

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月13日 星期三 10:52

鳄鱼 crocodile.liu在163.com
星期三 九月 13 10:52:07 HKT 2006

limodou 写道:
> run应该就是一个循环,如果你中途按了Ctrl+C了,会引发一个KeyboardInterrupt异常,于是退出。
>
>   
可是run函数里并没有循环,
def run(addr, port, wsgi_handler):
    server_address = (addr, port)
    httpd = WSGIServer(server_address, WSGIRequestHandler)
    httpd.set_app(wsgi_handler)
    httpd.serve_forever()


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月13日 星期三 11:04

yi huang yi.codeplayer在gmail.com
星期三 九月 13 11:04:08 HKT 2006

®é

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年09月13日 星期三 11:06

jacob jacob在exoweb.net
星期三 九月 13 11:06:09 HKT 2006

鳄鱼 wrote:
> limodou 写道:
>   
>> run应该就是一个循环,如果你中途按了Ctrl+C了,会引发一个KeyboardInterrupt异常,于是退出。
>>
>>   
>>     
> 可是run函数里并没有循环,
> def run(addr, port, wsgi_handler):
>     server_address = (addr, port)
>     httpd = WSGIServer(server_address, WSGIRequestHandler)
>     httpd.set_app(wsgi_handler)
>     httpd.serve_forever()
>
> _______________________________________________
>   
再深入一点, 看到httpd.serve_forever了么? :-)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号