<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas",serif;
        color:black;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:147131809;
        mso-list-type:hybrid;
        mso-list-template-ids:-1725426554 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:1899585465;
        mso-list-type:hybrid;
        mso-list-template-ids:-668690780 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>For your questions,<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> The virtualhost entry uses the wsgi mod to spin up a subprocess that serves the http request, no port is required since wsgi handles that.<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I think your wsgi file is still wrong.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>That “</span>from application import app as application” line is specific to the file structure of websitemixer, it will need to be adjusted for your environment.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Try this instead…<o:p></o:p></p><p class=MsoNormal>##### /var/www/ourproject/ourproject.wsgi<br>import sys<br>sys.path.append("/var/www/ourproject/")<br>from ourproject import app<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Remember to restart apache any time you make changes too since it isn’t loading files dynamically like the built in python web server does. Keep an eye on the error_log of apache too, it may point at any issues not easily seen since your using Apache and not the dev server.<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>-Brad<o:p></o:p></span></p></div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> tigernassau [mailto:tigernassau@gmail.com] <br><b>Sent:</b> Tuesday, September 8, 2015 6:01 PM<br><b>To:</b> Brad Derstine <brad@bizzartech.com><br><b>Cc:</b> Matt Gushee <matt@gushee.net>; flask@python.org<br><b>Subject:</b> Re: [Flask] serious problems with deploying flask app to server<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>thks for info - ours is only different in that we are not running in virtualenv (so don't have the activate code )  and not using ssl (later on our task list)<br><br>still getting apache page - here is our test setup:<br><br>questions:  <br>1) we understand apache virtual find by name but how does it know what port Flask would run on ??<br>2) without virtualenv do we still need to activate flask somehow ??<br>  <br>#### /var/www/ourproject/ourproject.py<br>from flask import Flask<br>app = Flask(__name__)<br>@app.route('/')<br>def hello():<br>    return '<h1>Hello</h1>'<br>#<br># if __name__ == "__main__":<br>#     app.run(debug=True)<br><br><br>##### /var/www/ourproject/ourproject.wsgi<br># wsgi file<br>import sys<br>sys.path.append("var/www/ourproject")<br># import os<br># os.chdir("/var/www/ourproject")<br>from application import app as application<br><br><br>###### /etc/apache2/sites-enabled/ourproject.conf<br><VirtualHost *><br>  ServerName ourproject.com<br>  ServerAlias <a href="http://www.ourproject.com">www.ourproject.com</a><br>  DocumentRoot /var/www/ourproject/<br>  ErrorLog ${APACHE_LOG_DIR}/error.log<br>  CustomLog ${APACHE_LOG_DIR}/access.log combined<br><br>  WSGIDaemonProcess ourproject user=www-data group=www-data processes=2 threads=5<br>  WSGIScriptAlias / /var/www/ourproject/ourproject.wsgi<br>  WSGIPassAuthorization On<br><br>  <Directory /var/www/ourproject><br>      WSGIProcessGroup ourproject<br>      WSGIApplicationGroup %{GLOBAL}<br>      Require all granted<br>  </Directory><br></VirtualHost><br><br><br><br><br><br><br><br>On 09/08/2015 01:53 PM, Brad Derstine wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>I’ve been creating some cookie cutter cms installs of flask with Apache 2.4 and mod_wsgi and running multiple other sites on a server using virtual environments and virtualhosts. So far so good! Below is what’s currently working for me… I’m happy to explain anything I’m using. You can view the full repo with setup.sh script for how I’m deploying it at <a href="https://github.com/bderstine/WebsiteMixer-App-Base">https://github.com/bderstine/WebsiteMixer-App-Base</a> <o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I installed to /srv/<a href="http://websitemixer.com/">websitemixer.com/</a> and here are the files I used… YMMV<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I’m using Ubuntu 14.04 and whatever Python 2.7 the official repos think is current.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>/srv/<a href="http://websitemixer.com/api.wsgi">websitemixer.com/api.wsgi</a><o:p></o:p></p></div><div><p class=MsoNormal>================<o:p></o:p></p></div><div><div><p class=MsoNormal>#!/bin/python<o:p></o:p></p></div><div><p class=MsoNormal>activate_this = '/srv/<a href="http://websitemixer.com/venv/bin/activate_this.py%27">websitemixer.com/venv/bin/activate_this.py'</a><o:p></o:p></p></div><div><p class=MsoNormal>execfile(activate_this, dict(__file__=activate_this))<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>import sys<o:p></o:p></p></div><div><p class=MsoNormal>sys.path.append('/srv/<a href="http://websitemixer.com">websitemixer.com</a>')<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>from application import app as application<o:p></o:p></p></div><div><p class=MsoNormal>================<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>/etc/apache2/sites-enabled/<a href="http://websitemixer.com">websitemixer.com</a>.conf<o:p></o:p></p></div><div><div><p class=MsoNormal>================<o:p></o:p></p></div></div><div><div><p class=MsoNormal><VirtualHost *:80><o:p></o:p></p></div><div><p class=MsoNormal>    ServerName <a href="http://websitemixer.com">websitemixer.com</a><o:p></o:p></p></div><div><p class=MsoNormal>    ServerAlias <a href="http://www.websitemixer.com">www.websitemixer.com</a><o:p></o:p></p></div><div><p class=MsoNormal>    DocumentRoot /var/www<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>    WSGIDaemonProcess apiwebsitemixer user=www-data group=www-data threads=5<o:p></o:p></p></div><div><p class=MsoNormal>    WSGIScriptAlias / /srv/<a href="http://websitemixer.com/api.wsgi">websitemixer.com/api.wsgi</a><o:p></o:p></p></div><div><p class=MsoNormal>    WSGIPassAuthorization On<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>    <Directory /var/www><o:p></o:p></p></div><div><p class=MsoNormal>        Order deny,allow<o:p></o:p></p></div><div><p class=MsoNormal>        Allow from all<o:p></o:p></p></div><div><p class=MsoNormal>    </Directory><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>    <Directory /srv/<a href="http://websitemixer.com">websitemixer.com</a>><o:p></o:p></p></div><div><p class=MsoNormal>        WSGIProcessGroup apiwebsitemixer<o:p></o:p></p></div><div><p class=MsoNormal>        WSGIApplicationGroup %{GLOBAL}<o:p></o:p></p></div><div><p class=MsoNormal>        WSGIScriptReloading On<o:p></o:p></p></div><div><p class=MsoNormal>        Order deny,allow<o:p></o:p></p></div><div><p class=MsoNormal>        Allow from all<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>        ExpiresActive On<o:p></o:p></p></div><div><p class=MsoNormal>        #ExpiresByType text/css   "now plus 7 days"<o:p></o:p></p></div><div><p class=MsoNormal>        ExpiresDefault "access plus 1 month"<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>        <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"><o:p></o:p></p></div><div><p class=MsoNormal>        Header set Cache-Control "max-age=1296000, public"<o:p></o:p></p></div><div><p class=MsoNormal>        </FilesMatch><o:p></o:p></p></div><div><p class=MsoNormal>        Require all granted<o:p></o:p></p></div><div><p class=MsoNormal>    </Directory><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>    LogLevel warn<o:p></o:p></p></div><div><p class=MsoNormal>    CustomLog ${APACHE_LOG_DIR}/<a href="http://websitemixer.com">websitemixer.com</a>-access.log combined<o:p></o:p></p></div><div><p class=MsoNormal>    ErrorLog ${APACHE_LOG_DIR}/<a href="http://websitemixer.com">websitemixer.com</a>-error.log<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal></VirtualHost><o:p></o:p></p></div><div><div><p class=MsoNormal>================<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>On Sep 8, 2015, at 3:30 PM, tigernassau <<a href="mailto:tigernassau@gmail.com">tigernassau@gmail.com</a>> wrote:<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>On 09/08/2015 11:56 AM, Matt Gushee wrote:<o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px'><div><div><div><p class=MsoNormal style='margin-bottom:12.0pt;background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Hi, Tiger--<o:p></o:p></span></p></div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>I used to run a Flask site with nginx & uwsgi; I can't recall any major issues with deployment. That site is not currently up, but I'll see if I can find the configs. Meanwhile, this is just to let you know that it *should* work. IMHO.<o:p></o:p></span></p></div></div></blockquote><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br><span style='background:white'>hope you can post a working solution - we made progress by also looking at Bottle docs and now don't have server errors but Flask app domain is reverting to the Apache page and not running the flask app - that would indicated a virtual host issue but a static html page shows up fine on this domain - maybe a port issue ??  - maybe the Flask app not running ??   maybe version conflicts (used latest Deb 8 for python (2.7x) , mod-wsgi and pip install Flask).  After 4 days, have run out of ideas to try. <span class=apple-converted-space> </span></span><br><br><span style='background:white'>I realize there are variables (Apache vs Nginx, Debian vs Ubuntu vs RedHat, standalone vs virtual hosts) but should be easy enough to have working examples of these most typical deployments)<span class=apple-converted-space> </span></span><br><br><span style='background:white'>Flask was really great for developing our site - now if we can only get it deployed (:  <span class=apple-converted-space> </span></span><br><br><br style='orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>--<o:p></o:p></span></p></div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Matt Gushee<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><o:p> </o:p></span></p><div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>On Sat, Sep 5, 2015 at 10:22 PM, tigernassau<span class=apple-converted-space> </span><<a href="mailto:tigernassau@gmail.com">tigernassau@gmail.com</a>><span class=apple-converted-space> </span>wrote:<o:p></o:p></span></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Not sure whether it's an issue with docs or even a bug in wsgi  - what should be a 30 minute task is turning into 3 days!<br><br>Although deploying the simple flask hello world example to a standard server should be a really basic task, good step by step docs are really lacking - we couldn't find a single specific working example and many other people reporting trouble on stackoverflow are dissed without solutions.  The<span class=apple-converted-space> </span><a href="http://pocoo.org/" target="_blank">pocoo.org</a><span class=apple-converted-space> </span>docs do not show a working complete example - this is making using Flask really difficult to use compared to other frameworks.  Can we turn this example into some good step by step docs.<br><br>we first tried nginx w/ uwsgi but this failed big time - somehow nginx is caching the non-working nginx.conf with uwsgi and couldn't clear it or even reset the server - so purged nginx and moved to Apache<br><br>while apache is working fine for serving several other static sites with virtual hosts, the following flask app is failing on Apache - it's also caching some process so even after removing the app conf file in sites-enabled, we cannot restart the server - apparently some process is running that we cannot find or kill and requiring the whole server to come down.  something is seriously wrong here - not sure what the hell wsgi is doing.<br><br>ourproject.py<br>from flask import Flask<br>app = Flask(__name__)<br>@app.route('/')<br>def hello():<br>   <span class=apple-converted-space> </span>return '<h1>Hello</h1>'<br>if __name__ == "__main__":<br>   <span class=apple-converted-space> </span>app.run(debug=True, host='127.0.0.1',port='8040')<br><br>ourproject.wsgi<br>#  wsgi file<br>import os, sys<br>sys.path.insert(0,"var/www/ourproject")<br>from ourproject import app as application<br><br><br># ourproject.conf<br><VirtualHost *:80><br> <span class=apple-converted-space> </span>ServerName<span class=apple-converted-space> </span><a href="http://ourproject.com/" target="_blank">ourproject.com</a><br> <span class=apple-converted-space> </span>ServerAlias<span class=apple-converted-space> </span><a href="http://www.ourproject.com">www.ourproject.com</a><br> <span class=apple-converted-space> </span>DocumentRoot /var/www/ourproject/<br> <span class=apple-converted-space> </span>ErrorLog /var/www/ourproject/logs/error.log<br> <span class=apple-converted-space> </span>CustomLog /var/www/ourproject/logs/access.log combined<br><br> <span class=apple-converted-space> </span>WSGIDaemonProcess ourproject user=www-data group=www-data threads=5<br> <span class=apple-converted-space> </span>WSGIScriptAlias / /var/www/ourproject/ourproject.wsgi<br><br> <span class=apple-converted-space> </span><Directory /var/www/ourproject><br>     <span class=apple-converted-space> </span>WSGIProcessGroup ourproject<br>     <span class=apple-converted-space> </span>WSGIApplicationGroup %{GLOBAL}<br>     <span class=apple-converted-space> </span>Order allow, deny<br>     <span class=apple-converted-space> </span>Allow from all<br> <span class=apple-converted-space> </span></Directory><br><br> <span class=apple-converted-space> </span>Alias /static /var/www/ourproject/static<br></VirtualHost><br><br>** not sure what %{GLOBAL} should be<br><br>1,1           Top</span><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#888888'><br><br><br><br><span class=hoenzb>--</span><span class=apple-converted-space> </span><br><span class=hoenzb>Tiger Nassau, Inc.</span><br><span class=hoenzb><a href="http://www.tigernassau.com/" target="_blank">www.tigernassau.com</a></span><br><br><span class=hoenzb>_______________________________________________</span><br><span class=hoenzb>Flask mailing list</span><br><span class=hoenzb><a href="mailto:Flask@python.org" target="_blank">Flask@python.org</a></span><br><span class=hoenzb><a href="https://mail.python.org/mailman/listinfo/flask" target="_blank">https://mail.python.org/mailman/listinfo/flask</a></span></span><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><o:p></o:p></span></p></blockquote></div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><o:p> </o:p></span></p></div><p class=MsoNormal style='background:white'><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br><br><br><o:p></o:p></span></p><pre style='background:white'>_______________________________________________<o:p></o:p></pre><pre style='background:white'>Flask mailing list<o:p></o:p></pre><pre style='background:white'><a href="mailto:Flask@python.org">Flask@python.org</a><o:p></o:p></pre><pre style='background:white'><a href="https://mail.python.org/mailman/listinfo/flask">https://mail.python.org/mailman/listinfo/flask</a><o:p></o:p></pre></blockquote><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br><br style='orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><o:p></o:p></p><pre style='background:white'><span style='font-size:9.0pt'>-- <o:p></o:p></span></pre><pre style='background:white'><span style='font-size:9.0pt'>Tiger Nassau, Inc.<o:p></o:p></span></pre><pre style='background:white'><span style='font-size:9.0pt'><a href="http://www.tigernassau.com/">www.tigernassau.com</a><o:p></o:p></span></pre><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif;background:white'>_______________________________________________</span><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br><span style='background:white'>Flask mailing list</span><br></span><a href="mailto:Flask@python.org"><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif;background:white'>Flask@python.org</span></a><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br></span><a href="https://mail.python.org/mailman/listinfo/flask"><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif;background:white'>https://mail.python.org/mailman/listinfo/flask</span></a><o:p></o:p></p></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></div></blockquote><p class=MsoNormal><br><br><br><o:p></o:p></p><pre>-- <o:p></o:p></pre><pre>Tiger Nassau, Inc.<o:p></o:p></pre><pre><a href="http://www.tigernassau.com">www.tigernassau.com</a><o:p></o:p></pre></div></body></html>