网站地图 联系我们

学习python首选-实战python学习班,专注于python高级工程师培养,python课程:包括Python核心编程技术、全栈开发、网络爬虫、人工智能等。python全栈工程师+提高工作经验,获取免费试听课程!
当前位置: python培训 > python学习 > 常见问题 > 正文

flask-socketio web开发启动服务方式

来源:肚皮舞 浏览量: 发布日期:20-08-31 10:41:54 调整字体大小【 【所属栏目:常见问题】

  使用 flask-socketio 在网页中嵌入了一个聊天室,启动服务使用的是:

  socketio.run(app)

  但是之前在没有写这个聊天室的时候,使用了flask-manager,开启服务是:

  manager.run() 可以方便调试,同步数据库。

  但是现在使用了socketio 就只能用socketio.run(app)启动了吗?

  你可以重载manage.py 中的run()函数:

  class Server(_Server):

  help = description = 'Runs the Socket.IO web server'

  def get_options(self):

  options = (

  Option('-h', '--host',

  dest='host',

  default=self.host),

  Option('-p', '--port',

  dest='port',

  type=int,

  default=self.port),

  Option('-d', '--debug',

  action='store_true',

  dest='use_debugger',

  help=('enable the Werkzeug debugger (DO NOT use in '

  'production code)'),

  default=self.use_debugger),

  Option('-D', '--no-debug',

  action='store_false',

  dest='use_debugger',

  help='disable the Werkzeug debugger',

  default=self.use_debugger),

  Option('-r', '--reload',

  action='store_true',

  dest='use_reloader',

  help=('monitor Python files for changes (not 100%% safe '

  'for production use)'),

  default=self.use_reloader),

  Option('-R', '--no-reload',

  action='store_false',

  dest='use_reloader',

  help='do not monitor Python files for changes',

  default=self.use_reloader),

  )

  return options

  def __call__(self, app, host, port, use_debugger, use_reloader):

  # override the default runserver command to start a Socket.IO server

  if use_debugger is None:

  use_debugger = app.debug

  if use_debugger is None:

  use_debugger = True

  if use_reloader is None:

  use_reloader = app.debug

  socketio.run(app,

  host=host,

  port=port,

  debug=use_debugger,

  use_reloader=use_reloader,

  **self.server_options)

  manager.add_command("runserver", Server())

  启动方式: python manage.py runserver --host 0.0.0.0 --port 8000 -d -r

  上述方式只在调试时使用,上线还是Gunicorn/uwsgi + nginx 吧。

  不用只需要运行app.run()你可以直接使用manager.run()测试一下flask-socketio大概可以使用。但是我一直都没有找到flask-socketio如何整合到nginx。。

标签:
肚皮舞新闻动态News Center

肚皮舞视频

肚皮舞培训课程

联系卡伊丝contact us
联系我们
python培训「零基础入门到精通」python人工智能编程培训班-0798wz.com

咨询热线:18301225663