Windows上部署Python flask项目

最近使用Python flask做了一个项目要部署,网上一大堆教程没有一个完整,最后看了多个教程才配置完成,下面根据自己的环境整理一下做个备忘录

环境:

Windows 10

apache httpd-2.4.54(vc++我从2008-2022全装了)

Python 3.11(环境变量别忘了配)

MySQL 8.0.31(项目中用到了数据库)

上面的环境需要提前装好,下面直接说配置。

配置

安装mod_wsgi

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

注意要和Python版本一样,Python 3.11选择cp311,这里选择的是 mod_wsgi‑4.9.2‑cp311‑cp311‑win_amd64.whl

cmd启动后使用pip安装,pip找不到时要添加系统变量,或者cmd进入Python安装目录下的Scripts文件夹,执行安装:

pip install mod_wsgi-4.9.2-cp311-cp311-win_amd64.whl

安装依赖

这个项目用到了下面两个依赖

pip install Flask==2.3.2
pip install PyMySQL==1.0.3

flask项目

把flask项目复制到www目录中,这里放到D:\01.www\html\flask目录中,入口文件是main.py

这里创建个main.wsgi文件,写入内容:

import sys

#app's path 替换成自己的目录
sys.path.insert(0,"D:/01.www/html/flask")

#main是主程序,根据自己的填写
from main import app

#Initialize WSGI app object
application = app

注:这里的app's path目录一定要用正斜杠,反斜杠的话会提示Internal Server Error因为是Windows系统,习惯复制目录粘贴,而复制的目录里是反斜杠,所以这里容易出错。

 httpd.conf配置

打开httpd.conf文件,找到mod_access_compat把前面的#号去掉

LoadModule access_compat_module modules/mod_access_compat.so

打开cmd 执行命令:

mod_wsgi-express module-config

复制回显内容,粘贴到LoadModule之后。

然后再文件最后添加

<VirtualHost * >
	ServerName auth.com
	WSGIScriptAlias / "D:\01.www\html\flask\main.wsgi"
	<Directory "D:\01.www\html\flask">
		Require all granted
	</Directory>	
</VirtualHost>

其中WSGIScriptAlias指定刚创建的wsgi文件,Directory指定www中flask项目目录。

重启apache服务,成功后,访问页面

 
posted @ 2023-07-09 18:51  xjournal  阅读(856)  评论(0编辑  收藏  举报