分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

django采用cherrypy作为轻量级web服务器。

发布时间:2023-09-06 02:14责任编辑:傅花花关键词:djangoweb服务器

https://www.xuebuyuan.com/zh-hant/1547838.html

新建app,并添加到settings.py
在app下增加management包。

將以下代碼保存為文件runservercp.py,放到management/commands/runservercp.py

from django.core.management.base import BaseCommand, CommandError ?from optparse import make_option ?import os, sys ?import cherrypy ?from cherrypy import wsgiserver ?class Command(BaseCommand): ?????option_list = BaseCommand.option_list + ( ?????????make_option(‘--noreload‘, action=‘store_false‘, dest=‘use_reloader‘, default=True, ?????????????help=‘Tells Django to NOT use the auto-reloader.‘), ?????????make_option(‘--adminmedia‘, dest=‘admin_media_path‘, default=‘‘, ?????????????help=‘Specifies the directory from which to serve admin media.‘), ?????) ?????help = "Starts a lightweight Web server for development." ?????args = ‘[optional port number, or ipaddr:port]‘ ???????# Validation is called explicitly each time the server is reloaded. ?????requires_model_validation = False ???????def handle(self, addrport=‘‘, *args, **options): ?????????import django ?????????from django.core.servers.basehttp import AdminMediaHandler ?????????from django.core.handlers.wsgi import WSGIHandler ?????????if args: ?????????????raise CommandError(‘Usage is runservercp %s‘ % self.args) ?????????if not addrport: ?????????????addr = ‘‘ ?????????????port = ‘8000‘ ?????????else: ?????????????try: ?????????????????addr, port = addrport.split(‘:‘) ?????????????except ValueError: ?????????????????addr, port = ‘‘, addrport ?????????if not addr: ?????????????addr = ‘127.0.0.1‘ ???????????if not port.isdigit(): ?????????????raise CommandError("%r is not a valid port number." % port) ???????????use_reloader = options.get(‘use_reloader‘, True) ?????????admin_media_path = options.get(‘admin_media_path‘, ‘‘) ?????????shutdown_message = options.get(‘shutdown_message‘, ‘‘) ?????????quit_command = (sys.platform == ‘win32‘) and ‘CTRL-BREAK‘ or ‘CONTROL-C‘ ???????????????????def inner_run(): ?????????????from django.conf import settings ?????????????from django.utils import translation ?????????????print "\nValidating models..." ?????????????self.validate(display_num_errors=True) ?????????????print "\nDjango version %s, using settings %r" % (django.get_version(), settings.SETTINGS_MODULE) ?????????????print "Development server is running at http://%s:%s/" % (addr, port) ?????????????print "Quit the server with %s." % quit_command ???????????????????????????# django.core.management.base forces the locale to en-us. We should ?????????????# set it up correctly for the first request (particularly important ?????????????# in the "--noreload" case). ?????????????translation.activate(settings.LANGUAGE_CODE) ???????????????????????????try: ?????????????????path = admin_media_path or django.__path__[0] + ‘/contrib/admin/media‘ ?????????????????handler = AdminMediaHandler(WSGIHandler(), path) ?????????????????cherrypy.config.update({ ?????????????????????????‘server.socket_host‘: addr, ?????????????????????????‘server.socket_port‘: int(port), ?????????????????????????‘engine.autoreload_on‘: ?use_reloader ?????????????????????}) ???????????????????????cherrypy.tree.graft(handler, ‘/‘) ???????????????????????cherrypy.engine.start() ?????????????????cherrypy.engine.block() ?????????????finally: ?????????????????if shutdown_message: ?????????????????????print shutdown_message ?????????????????cherrypy.engine.exit() ?????????inner_run() ?

django采用cherrypy作为轻量级web服务器。

原文地址:https://www.cnblogs.com/abcyrf/p/9635385.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved