flask部署到虚拟机服务器,flask 本地服务器部署

本文详细介绍了如何在Windows环境下搭建Apache服务器,并配置Python的mod_wsgi模块来运行Flask应用。首先,通过修改Apache配置文件启用非默认端口。接着,安装Python并配置环境变量。然后,安装mod_wsgi并获取必要的配置信息。再安装Flask并创建基本的Web应用程序。最后,将Apache配置为使用Flask应用,并测试了HTTP请求的Get和Post方法,确保一切正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 安装Apache

解压到D盘下,我的80端口已经被占用了,所以需要修改配置文件:D:/Apache24/conf/httpd.conf

找到Define SRVROOT,改为:

Define SRVROOT "d:/Apache24"

找到Listen,改为:

Listen 9002

在cmd下,执行:

d:

cd apache24/bin

httpd

在浏览器输入localhost:9002,在网页上显示 It Works! 表明Apache启动成功。

二. 安装Python

我下载的是Python37,这个就自己找吧。

安装目录:C:\Program Files\Python37

在环境变量Path中加入配置:

C:\Program Files\Python37\Scripts;C:\Program Files\Python37;

在cmd下执行:

C:\Users\Administrator>python

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD6

4)] on win32

Type "help", "copyright", "credits" or "license" for more information.

说明安装配置成功

三. 安装mod_wsgi

把下载的.whl文件复制到python\Scripts下使用

pip3 install "mod_wsgi-4.5.15+ap24vc14-cp36-cp36m-win_amd64.whl"

进行安装在安装成功后在python的安装目录的\scripts文件夹下运行

mod_wsgi-express module-config

输出如下三行结果

LoadFile "c:/program files/python37/python37.dll"

LoadModule wsgi_module "c:/program files/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"

WSGIPythonHome "c:/program files/python37"

把这三行内容复制到http.cnf文件下的其他LoadModule命令后面。

把下面两条LoadModule的注释去掉:

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule vhost_alias_module modules/mod_vhost_alias.so

再次启动服务器即可

四. 安装Flask

我用PyCharm编程的时候其实已经装过Flask了,如果没有装过的话,就在cmd下直接执行:

pip install flask

五. 创建WebApp

创建目录C:\Test_Web

创建文件test.py

from flask import Flask,render_template,jsonify

app = Flask(name)

if name== 'main':

app.run(

host = '0.0.0.0',

port = 9000,

debug = True

)

@app.route('/')

def hello_world():

return "

Hello World!

"

@app.route('/main/')

def westos():

# 如何在flask程序中返回一个html页面;flask默认查找页面内容的位置为templates目录;

return render_template('main.html')

tasks = [

{

'id': 1,

'title': u'Buy groceries',

'description': u'Milk, Cheese, Pizza, Fruit, Tylenol',

'done': False

},

{

'id': 2,

'title': u'Learn Python',

'description': u'Need to find a good Python tutorial on the web',

'done': False

}]

@app.route('/restful/getTask',methods=['GET'])

def get_tasks():

return jsonify({'tasks':tasks})

@app.route('/restful/postTask',methods=['POST'])

def post_tasks():

return jsonify({'tasks':tasks})

创建文件test.wsgi

import sys

sys.path.insert(0, 'c:\Test_Web')

from test import app as application

我的test.py里面还有个html,所以可以再创建一个templates目录和main.html文件

Main

Main

六. 配置Apache

在apache24/conf/httpd.conf中添加如下配置:

Listen 9003

ServerAdmin admin@example.com

WSGIScriptAlias / C:\Test_Web\test.wsgi

Require all granted

Require host ip

重启服务器

七. 测试

ce54a53aaab1

image.png

ce54a53aaab1

image.png

ce54a53aaab1

image.png

在postman中,测试Post方法

ce54a53aaab1

image.png

### Flask项目的生产服务器部署指南 #### 创建并测试本地Flask应用 在将Flask应用程序部署到生产环境中之前,需先确保其能够在本地正常运行。这一步骤涉及编写基本的Flask代码结构以及验证功能是否按预期工作[^1]。 ```python from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hello, this is your Flask app!" if __name__ == '__main__': app.run(debug=True) ``` 上述代码展示了如何构建一个基础的Flask应用,并通过`debug=True`参数启动开发模式下的服务器。然而,在生产环境下应禁用调试模式以提高安全性[^2]。 #### 使用Gunicorn作为WSGI服务器 由于内置的Flask服务器仅适用于开发阶段而不适合用于实际生产环境中的服务提供,因此推荐采用像Gunicorn这样的成熟WSGI服务器来托管Flask程序实例。以下是配置Gunicorn的方法: 安装Gunicorn可以通过pip完成: ```bash pip install gunicorn ``` 接着可以利用如下命令行指令调用Gunicorn运行已有的Flask脚本(假设入口文件名为`application.py`, 并且内部定义了一个叫做`app`的对象): ```bash gunicorn --workers 3 application:app ``` 这里设置了三个worker进程处理请求;具体数量可以根据硬件性能调整优化。 #### 部署至云端平台(CCE为例) 当准备就绪后,可以选择合适的云计算服务商进一步扩展规模和服务范围。比如华为云提供了CCE(Cloud Container Engine),允许开发者轻松搭建基于Kubernetes架构的应用生态系统[^3]。 ##### 步骤概述 - **创建集群**: 开始前需要建立一个新的计算资源池即所谓的“Cluster”,它由多个虚拟机组成共同协作支持业务运转。 - **部署MySQL数据库**: 利用官方镜像快速初始化一套分布式的SQL存储解决方案满足数据持久化需求。 - **上传认证模块(Wow Auth)**: 将自定义的身份校验逻辑集成进去保障系统的安全准入机制有效运作。 以上流程能够帮助实现复杂场景下多组件协同工作的现代化互联网产品形态。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值