在windows下部署flask-使用IIS+WFASTCGI+venv

说给自己的废话--本来之前的部署都是用apache 不论是在unix环境还是之前用Django的时候,但是公司的计算机Windows就是跟我作对吧 配置了一万年都部署不了,最后放弃了apache,反正性能都这样,转到IIS了。

我就不每个步骤都写出来了 可以参考以下两个链接进行基础的配置,我再进行一个补充说明

https://blog.51cto.com/alun51cto/2398143

https://www.cnblogs.com/liluping860122/p/9203908.html

配置完成之后 你会发现根本部署不成功,报错说你没有设置WSGI_HANDLER,而且大部分你搜索的教程都是这些个步骤,那么到底是为什么呢?我先说几个点

1.根据这个链接,里面说的很清楚,

在Windows计算机(包括Azure上的Windows虚拟机)上将Internet Information Services(IIS)用作Web服务器时,Python应用程序必须在其web.config文件中包含特定设置,以便IIS可以正确处理Python代码。计算机本身也必须已安装Python以及网络应用所需的所有软件包。

应用程序的web.config文件指示Windows上运行的IIS(7+)Web服务器如何通过HttpPlatform(推荐)或FastCGI处理Python请求。Visual Studio版本2015和更早版本会自动进行这些修改。使用Visual Studio 2017及更高版本时,必须手动修改web.config

当然我本人是没有使用VS开发网页的,但是我确实在我的项目根目录里发现了web.config这个文件(如果没有的话,就自己创建一个吧)里面有我的python地址、wfastcgi文件地址,也就是在添加模块映射时里面写的那个,但是我之前设置好的wsgi_handler和pythonpath都没有,应该也是它不会自动设置的原因,我粘贴了下面这一段,终于成功部署我的网页了【鼓掌

     <appSettings>
        <add key="WSGI_HANDLER" value="manage.app" />
        <add key="PYTHONPATH" value="D:\flaskvenv" />
    </appSettings>

然后在我解决这个问题之后,我发现有个教程就有提到过需要自己创建app.config,为什么我卡住的时候没有发现呢【掀桌

2.当你使用虚拟环境的时候,只需要把模块映射那里指向你虚拟环境中的python.exe就可以了

3.如果你是用create_app()来创建app,那么在WSGI_HANDLER这里设置为yourapp.create_app()就可以了

4.可能出现的权限问题,在这个教程里拉到下面,有个配置IUSER权限的,配置完就可以了

 

好了 我卡了这么多天终于成功了hh我真棒

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现课程电商网站,我们可以使用Flask框架和MySQL数据库来构建网站,并使用PayPal API来处理付款。以下是一些步骤: 1. 首先,我们需要使用Flask和MySQL来构建网站。我们可以使用Flask的蓝图来组织我们的代码,并使用MySQL来存储我们的数据。 2. 接下来,我们需要使用PayPal API来处理付款。我们可以使用PayPal的Vue.js包装组件vue-paypal-checkout来实现这一点。我们可以将这个组件添加到我们的网站中,并使用它来处理付款。 3. 我们还需要使用python-dotenv和flask-cli自定义命令来管理我们的环境变量和启动我们的应用程序。我们可以使用python-dotenv来加载我们的环境变量,并使用flask-cli自定义命令来启动我们的应用程序。 ```python # 示例代码 from flask import Flask from flask_mysqldb import MySQL from paypalcheckoutsdk.core import PayPalHttpClient, SandboxEnvironment from paypalcheckoutsdk.orders import OrdersCreateRequest app = Flask(__name__) # 配置MySQL数据库 app.config['MYSQL_HOST'] = 'localhost' app.config['MYSQL_USER'] = 'root' app.config['MYSQL_PASSWORD'] = 'password' app.config['MYSQL_DB'] = 'mydatabase' mysql = MySQL(app) # 配置PayPal API client_id = 'YOUR_CLIENT_ID' client_secret = 'YOUR_CLIENT_SECRET' environment = SandboxEnvironment(client_id=client_id, client_secret=client_secret) client = PayPalHttpClient(environment) # 创建订单 request = OrdersCreateRequest() request.prefer('return=representation') request.request_body({ "intent": "CAPTURE", "purchase_units": [{ "amount": { "currency_code": "USD", "value": "100.00" } }] }) response = client.execute(request) print(response.result.id) # 自定义命令 @app.cli.command() def init_db(): cur = mysql.connection.cursor() cur.execute('CREATE TABLE IF NOT EXISTS courses (id INT, name VARCHAR(255), price FLOAT)') mysql.connection.commit() cur.close() print('Initialized the database.') # 蓝图 from flask import Blueprint bp = Blueprint('courses', __name__, url_prefix='/courses') @bp.route('/') def index(): cur = mysql.connection.cursor() cur.execute('SELECT * FROM courses') courses = cur.fetchall() cur.close() return render_template('courses/index.html', courses=courses) @bp.route('/<int:id>') def show(id): cur = mysql.connection.cursor() cur.execute('SELECT * FROM courses WHERE id = %s', [id]) course = cur.fetchone() cur.close() return render_template('courses/show.html', course=course) app.register_blueprint(bp) if __name__ == '__main__': app.run() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值