danspants
danspants

Reputation: 3427

Flask Windows Apache issues

I'm attempting to get Flask running off apache on windows and I'm coming across the error message below. Any ideas on what could be causing this issue?

Error Message:

mod_wsgi (pid=4380): Exception occurred processing WSGI script 'C:/I4/importicus/importicus.wsgi'.
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109] Traceback (most recent call last):
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]   File "C:\\Python26\\lib\\site-packages\\flask-0.9-py2.6.egg\\flask\\app.py", line 1701, in __call__
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]     return self.wsgi_app(environ, start_response)
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]   File "C:\\Python26\\lib\\site-packages\\flask-0.9-py2.6.egg\\flask\\app.py", line 1689, in wsgi_app
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]     response = self.make_response(self.handle_exception(e))
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]   File "C:\\Python26\\lib\\site-packages\\flask-0.9-py2.6.egg\\flask\\app.py", line 1687, in wsgi_app
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]     response = self.full_dispatch_request()
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]   File "C:\\Python26\\lib\\site-packages\\flask-0.9-py2.6.egg\\flask\\app.py", line 1360, in full_dispatch_request
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]     rv = self.handle_user_exception(e)
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]   File "C:\\Python26\\lib\\site-packages\\flask-0.9-py2.6.egg\\flask\\app.py", line 1358, in full_dispatch_request
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]     rv = self.dispatch_request()
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]   File "C:\\Python26\\lib\\site-packages\\flask-0.9-py2.6.egg\\flask\\app.py", line 1344, in dispatch_request
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109]     return self.view_functions[rule.endpoint](**req.view_args)
[Fri Nov 30 14:47:47 2012] [error] [client 192.168.100.109] TypeError: application() takes exactly 2 arguments (0 given)

my WSGI file looks like this:

import sys
sys.path.insert(0, "c:\i4\importicus")

from importicus import importicus_main as application
application.debug = True

and my application file looks like this:

from flask import Flask, render_template,jsonify, request
from werkzeug import secure_filename
import importicus_functions
import ast, os, sys
importicus_main = Flask(__name__)

UPLOAD_FOLDER = 'uploads'
TEMPLATE_FOLDER = 'templates'
importicus_main.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
importicus_main.config['TEMPLATE_FOLDER'] = TEMPLATE_FOLDER



@importicus_main.route('/')
def application(environ, start_response):
        status = '200 OK'
        output = "Hello World! INSIDE"
        response_headers = [('Content-type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]

Upvotes: 1

Views: 1033

Answers (1)

Rachel Sanders
Rachel Sanders

Reputation: 5884

The main problem is you're trying to write WSGI, not Flask. (Flask is WAY easier.)

This is what you want:

@importicus_main.route('/')
def application():
  return "Hello World! INSIDE"

Controllers (like the application function) don't take parameters, unless there are parameters in your url string. An example would be:

# /blog/1 would be a valid URL here
@importicus_main.route('/blog/<int:post_id>')
def blog_post(post_id):
  return "This would be blog post number %s" % post_id

Take a look at the Flask tutorial if you skipped it - it's excellent. I'd also suggest getting your app running with the built-in test server. You can easily port to mod_wsgi (or whatever) later.

Upvotes: 6

Related Questions