在Ubuntu下部署Flask项目

摘要:
#-B表示绑定IP地址和端口号#测试运行的文件名对应于测试。py#appFlask程序实例名称对应于app=Flask,例如:#直接运行gunnicorn-w4-b0.0.0.0:5000 test:app#运行gunnocorn-w4-b127.0.0.1:5000 test:app--daemon更好的启动方法添加配置文件gunnicorn.conf#并行工作线程数worker=4#侦听intranet端口5000bind='0.0.0.0:5000'#设置守护进程守护进程=True#设置超时120s,默认值为30s.$','',系统。argv[0])系统退出3。运行gunicornserver:app-cgunicorn.confps:如果出现以下警告,请尝试将gunicorn.conf文件更改为gunicorn.py并运行它!!!!!!

FlaskDemo 命名为test.py

# coding=utf-8
from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "test"

if __name__ == '__main__':
    app.debug = True
    # 这里host一定要写0.0.0.0 写127.0.0.1的无法访问 ——_——
    app.run(host="0.0.0.0", port=5000)

服务器配置

# 必须安装的包
pip install flask
pip install gunicorn

直接运行

python test.py runserver

gunicorn运行 推荐!!!

#直接运行,默认启动的127.0.0.1::8000
gunicorn 运行文件名称:Flask程序实例名

#指定端口
gunicorn -w 4 -b HOST:端口 运行文件名称:Flask程序实例名

#-w  表示进程(worker)。 
#-b  表示绑定ip地址和端口号(bind)
# test 运行的文件名称对应 test.py
# app Flask程序实例名对应 app = Flask(__name__)

如:
#直接运行
gunicorn -w 4 -b 0.0.0.0:5000  test:app

#后台运行
gunicorn -w 4 -b 127.0.0.1:5000 test:app --daemon 

更好的启动方式

添加配置文件gunicorn.conf

# 并行工作线程数
workers = 4
# 监听内网端口5000【按需要更改】
bind = '0.0.0.0:5000'
# 设置守护进程【关闭连接时,程序仍在运行】
daemon = True
# 设置超时时间120s,默认为30s。按自己的需求进行设置
timeout = 120
# 设置访问日志和错误信息日志路径
# accesslog = './logs/acess.log'
# errorlog = './logs/error.log'

运行程序

# gunicorn 运行模块名:应用名 -c 配置文件
gunicorn service:app -c gunicorn.conf

如果你想尝试使用其他py版本运行

1.查看gunicorn位置

which gunicorn

2.打开文件并编辑第一行指定版本

#!/usr/bin/python3.7  
# -*- coding: utf-8 -*-
import re
import sys

from gunicorn.app.wsgiapp import run

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
    sys.exit(run())

3.运行

 gunicorn server:app -c gunicorn.conf

ps:
如果运行出现一下警告,尝试将文件gunicorn.conf更改为 gunicorn.py在运行

!!!
!!! WARNING: configuration file should have a valid Python extension.
!!!

免责声明:文章转载自《在Ubuntu下部署Flask项目》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ERP和SAP的区别(原)Lazarus 异构平台下多层架构思路、DataSet转换核心代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

1024程序员节特供:APP弱网络测试利器(QNET)实战

背景介绍QNET:腾讯WeTest的APP弱网络测试专家 背景一 弱网络测试为专项测试之一,最近软件质量标准过程管理中也添加了测试要求: 生命周期 弱网络测试 运营期 必选 试运营期 必选 研发期 / 低维期 / Demo / 要求客户端的核心场景必须有断线重连机制,并在网络抖动、延时、丢包的网络场景下,需要满足: 一、不能出现...

windows+django3.1+ASGI+nginx部署

# 了解CGI CGI(通用网关接口, Common Gateway Interface/CGI),定义客户端与Web服务器的交流方式的一个程序。 #  什么是WSGI PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,已经被广...

Chrome 浏览器快捷键

Ø  前言 记录下 Chrome 的快捷键,原文链接:http://www.cnblogs.com/mikalshao/archive/2010/11/03/1868568.html   1.   标签页和窗口快捷键 Ctrl + N 打开新窗口。 Ctrl + T 打开新标签页。 Ctrl + Shift + N 在隐身模式下打开新窗口。...

anyproxy-windows平台安装和抓手机app上https请求

前言 做接口测试肯定离不开抓包,目前比较流行的抓包工具是fiddler和charles,相信并不陌生。这里介绍一个阿里公司研发的一个抓包神器,只需打开web页面,就能抓到手机app上的http和https请求了。这样就有个好处,当一个公司测试团队有多个人的时候,只需搭建一个AnyProxy服务,其它小伙伴浏览器上打开AnyProxy页面,手机上设置个代理就...

iOS开发日记16-通知栏扩展 (App Extension)

今天博主有一个App Extension的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. 总览 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非常大的功能点,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能。对于 iOS 来说,可以使用的扩展接入...

iris 框架在服务端解决跨域问题

1. 编写中间件,将允许跨域的header添加到响应头 //Cors funcCors(ctxiris.Context){ ctx.Header("Access-Control-Allow-Origin","*") //ctx.Header("Access-Control-Allow-Headers","DNT,X-Mx-ReqToken,Keep-Al...