59519751 发表于 2018-12-8 08:21:08

IIS部署flask之实现文件上传功能

1、环境
windows 7 x64
IIS 6
python 2.7.9
wfastcgi-3.0.0
flask-0.12.2
2、安装wfastcgi,并启动wfastcgi
pip install wfastcgi
C:\Users\wangpan>D:\software\Python27\Scripts\wfastcgi-enable.exe
已经在配置提交路径“MACHINE/WEBROOT/APPHOST”向“MACHINE/WEBROOT/APPHOST”的“system.webServer/fastCgi”节应用了配置更改
“d:\software\python27\python.exe|d:\software\python27\lib\site-packages\wfastcgi.pyc” can now be used as a FastCGI script processor
3、安装flask
pip install flask
4、打开windows功能,安装IIS,启用CGI
https://s1.运维网.com/wyfs02/M01/9E/B2/wKioL1mU5D_SE0PpAABp_PmK_dQ894.png-wh_500x0-wm_3-wmp_4-s_2827418504.png
5、安装URL重写
IIS 需要安装 URL 重写组件,这个可以通过Microsoft Web Platform Installer来安装。下载Microsoft Web Platform Installer后运行,搜索URL,安装URL重写工具。
https://10.12.49.221/wp-content/uploads/2017/08/URL%E9%87%8D%E5%86%99%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85.png
6、配置IIS
6.1 添加网站,根目录是d:\data\mysite\upload
https://s4.运维网.com/wyfs02/M00/00/02/wKiom1mU5TWxkNLeAAGj10LezL8851.png-wh_500x0-wm_3-wmp_4-s_1917997295.png
6.2 d:\data\mysite\upload目录结构
upload
–static上传目录的静态文件目录
–upload.py上传文件程序
–web.config配置文件
6.3 upload目录下web.config内容



















注意:

[*]  scriptProcessor的内容是执行wfastcgi-enable的输出
[*]  WSGI_HANDLER的value
[*]  PYTHONPATH的value
[*]  WSGI_LOG的目录一定要存在
6.4 upload.py上传文件的代码
#_*_coding:utf-8_*_
import os
from flask import Flask, request, redirect, url_for,render_template
from werkzeug import secure_filename
from flask import send_from_directory

UPLOAD_FOLDER = 'd:\data\mysite\upload\static'
ALLOWED_EXTENSIONS = set(['txt', 'docx', 'doc', 'xlsx' , 'xls','ppt' , 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
    return '.' in filename and \
         filename.rsplit('.', 1) in ALLOWED_EXTENSIONS
@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
      file = request.files['file']
      filename = file.filename
      if file and allowed_file(filename):
            #filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            return redirect(url_for('uploaded_file',filename=filename))
            #return redirect('success.html')
    return '''
   
    Upload new File
    Upload new File
   
      
         
   
    '''
@app.route('/upload/')
def uploaded_file(filename):
    return u'文件上传成功'
if __name__ == '__main__':
    app.run()7、flask学习网站
http://docs.jinkan.org/docs/flask/
  




页: [1]
查看完整版本: IIS部署flask之实现文件上传功能