Setting up Flask on IIS

From PeformIQ Upgrade
Revision as of 20:26, 3 August 2017 by PeterHarding (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


From scratch on PROCYON

Image of Console

  • Check that I have FastCGI Installed. If not - install it.
  • Add the new web site
  • Check Basic Settings
  • Setup FastCGI
  • Go to Handler Mappings
  • Add Module Mapping
  • Need to go to Top of Connections Pane - and select FastCGI Settings - (double click on Icon). Then burrow down into Environment Variables and add:
PYTHONPATH    C:\www\sites\flask
WSGI_HANDLER  server.app

Setup the Flask application tree.

(Make up a model)

Python Setup

C:\Users\plh>python --version
Python 2.7.13

C:\Users\plh>
C:\Users\plh>ipip install wfastcgi
'ipip' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\plh>pip install wfastcgi
Collecting wfastcgi
  Downloading wfastcgi-3.0.0.tar.gz
Installing collected packages: wfastcgi
  Running setup.py install for wfastcgi ... done
Successfully installed wfastcgi-3.0.0

C:\Users\plh>pip install wfastcgi
Requirement already satisfied: wfastcgi in c:\apps\python27_64\lib\site-packages

C:\Users\plh>pip install Flask
Collecting Flask
  Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
    100% |################################| 92kB 921kB/s
Collecting itsdangerous>=0.21 (from Flask)
  Downloading itsdangerous-0.24.tar.gz (46kB)
    100% |################################| 51kB 1.1MB/s
Collecting click>=2.0 (from Flask)
  Downloading click-6.7-py2.py3-none-any.whl (71kB)
    100% |################################| 71kB 1.5MB/s
Collecting Werkzeug>=0.7 (from Flask)
  Downloading Werkzeug-0.12.2-py2.py3-none-any.whl (312kB)
    100% |################################| 317kB 930kB/s
Collecting Jinja2>=2.4 (from Flask)
  Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
    100% |################################| 348kB 1.1MB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask)
  Downloading MarkupSafe-1.0.tar.gz
Installing collected packages: itsdangerous, click, Werkzeug, MarkupSafe, Jinja2, Flask
  Running setup.py install for itsdangerous ... done
  Running setup.py install for MarkupSafe ... done
Successfully installed Flask-0.12.2 Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 itsdangerous-0.24

C:\Users\plh>

C:\Users\plh>pip install sqlalchemy
Collecting sqlalchemy
  Downloading SQLAlchemy-1.1.12.tar.gz (5.2MB)
    100% |################################| 5.2MB 212kB/s
Installing collected packages: sqlalchemy
  Running setup.py install for sqlalchemy ... done
Successfully installed sqlalchemy-1.1.12

C:\Users\plh>pip install flask-sqlalchemy
Collecting flask-sqlalchemy
  Downloading Flask_SQLAlchemy-2.2-py2.py3-none-any.whl
Requirement already satisfied: SQLAlchemy>=0.8.0 in c:\apps\python27_64\lib\site-packages (from flask-sqlalchemy)
Requirement already satisfied: Flask>=0.10 in c:\apps\python27_64\lib\site-packages (from flask-sqlalchemy)
Requirement already satisfied: itsdangerous>=0.21 in c:\apps\python27_64\lib\site-packages (from Flask>=0.10->flask-sqlalchemy)
Requirement already satisfied: click>=2.0 in c:\apps\python27_64\lib\site-packages (from Flask>=0.10->flask-sqlalchemy)
Requirement already satisfied: Werkzeug>=0.7 in c:\apps\python27_64\lib\site-packages (from Flask>=0.10->flask-sqlalchemy)
Requirement already satisfied: Jinja2>=2.4 in c:\apps\python27_64\lib\site-packages (from Flask>=0.10->flask-sqlalchemy)
Requirement already satisfied: MarkupSafe>=0.23 in c:\apps\python27_64\lib\site-packages (from Jinja2>=2.4->Flask>=0.10->flask-sqlalchemy)
Installing collected packages: flask-sqlalchemy
Successfully installed flask-sqlalchemy-2.2

C:\Users\plh>

C:\Users\plh>cd \www

C:\www>cd sites

C:\www\sites>cd flask

C:\www\sites\flask>python server.py
Traceback (most recent call last):
  File "server.py", line 9, in <module>
    from flaskapp import app
  File "/www/sites/flask\flaskapp\__init__.py", line 17, in <module>
    from trace import Trace
  File "/www/sites/flask\flaskapp\trace.py", line 7, in <module>
    import pytz
ImportError: No module named pytz

C:\www\sites\flask>pip install pytz
Collecting pytz
  Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
    100% |################################| 491kB 957kB/s
Installing collected packages: pytz
Successfully installed pytz-2017.2

C:\www\sites\flask>python server.py
Traceback (most recent call last):
  File "server.py", line 9, in <module>
    from flaskapp import app
  File "/www/sites/flask\flaskapp\__init__.py", line 51, in <module>
    from . import routes, models
  File "/www/sites/flask\flaskapp\routes.py", line 8, in <module>
    import requests
ImportError: No module named requests

C:\www\sites\flask>pip install requests
Collecting requests
  Downloading requests-2.18.3-py2.py3-none-any.whl (88kB)
    100% |################################| 92kB 1.1MB/s
Collecting idna<2.6,>=2.5 (from requests)
  Downloading idna-2.5-py2.py3-none-any.whl (55kB)
    100% |################################| 61kB 1.4MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests)
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |################################| 143kB 1.3MB/s
Collecting certifi>=2017.4.17 (from requests)
  Downloading certifi-2017.7.27.1-py2.py3-none-any.whl (349kB)
    100% |################################| 358kB 1.1MB/s
Collecting urllib3<1.23,>=1.21.1 (from requests)
  Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
    100% |################################| 133kB 975kB/s
Installing collected packages: idna, chardet, certifi, urllib3, requests
Successfully installed certifi-2017.7.27.1 chardet-3.0.4 idna-2.5 requests-2.18.3 urllib3-1.22

C:\www\sites\flask>python server.py
Traceback (most recent call last):
  File "server.py", line 9, in <module>
    from flaskapp import app
  File "/www/sites/flask\flaskapp\__init__.py", line 51, in <module>
    from . import routes, models
  File "/www/sites/flask\flaskapp\routes.py", line 27, in <module>
    from models import \
  File "/www/sites/flask\flaskapp\models.py", line 6, in <module>
    from dateutil import parser as datetime_parser
ImportError: No module named dateutil

C:\www\sites\flask>pip install dateutil
Collecting dateutil
  Could not find a version that satisfies the requirement dateutil (from versions: )
No matching distribution found for dateutil

C:\www\sites\flask>pip install python-dateutil
Collecting python-dateutil
  Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
    100% |################################| 194kB 1.1MB/s
Collecting six>=1.5 (from python-dateutil)
  Downloading six-1.10.0-py2.py3-none-any.whl
Installing collected packages: six, python-dateutil
Successfully installed python-dateutil-2.6.1 six-1.10.0

C:\www\sites\flask>python server.py
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 180-289-821
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)\

OK. It's now working!


Other Setup Items

Now need to add in ReCAPCHA and Auth0 configuration items (See CONFIG.py)

DBHost             = '221.121.151.121'
DBName             = 'SarasDB_V2_3_0_Projects_RA'
DBUser             = 'ets'
DBPassword         = 'C0mm@nd3r'
DebugFile          = 'C:/Temp/flask_aasdev.txt'
Host               = 'flask.aasdev.net'
UploadRootFolder   = 'C:/www/uploads/flask'
RecaptchaKey       = '6LeItx8UAAAAAG5ODpug3ft7tPzL4hw75NGSam5u'
Auth0ClientId      = 'IFgRoE15aHQJqH7O1qHvTvKNxkYp70E8'
Auth0ClientSecret  = 'EqdnvhvQbqDnmYelZz1gcmFMMwlip5F0lyfREtphH0G0P1H-75WV2qP5TKhnJJAh'
AppTitle           = 'AAS Devel Sandpit'
URI_TEMPLATE       = 'mssql+pyodbc://%s:%s@%s/%s?driver=SQL+Server+Native+Client+11.0'

In particular:

  • RecaptchaKey - Go to Google site and add this.
  • Auth0ClientId & Auth0ClientSecret - Go to magusco.au.auth0.com for this.