2016-04-22 5 views
1

Ich versuche, eine kleine Flasche modulare Anwendung unter Windows 10 zu laufen. Ich habe ein Modul zum Mittagessen der Indexseite erstellt. Während eine einzelne Anwendung korrekt ausgeführt wird und die Startseite lädt, kann ich es nicht modular machen, dass eine 404-Fehlerseite nicht gefunden wird.Kolben 404 Fehler unter Windows

Hier ist meine Verzeichnisstruktur:

Application directory structure

Meine Dateien:

runserver.py

import os 
#from app.models import User, Role 
from flask import Flask 


basedir = os.path.abspath(os.path.dirname(__file__)) 

from landingpage import app 

app = Flask(__name__) 


if __name__ == '__main__': 
    app.run(debug=True) 

__init__.py

import os 

from flask import Flask, render_template, session, redirect, url_for 
from flask.ext.script import Manager 
from flask.ext.bootstrap import Bootstrap 
from flask.ext.moment import Moment 
from flask.ext.wtf import Form 
from wtforms import StringField, TextField, DateField, SubmitField 
from wtforms.validators import Required 
from wtforms.fields.html5 import DateField 
from flask.ext.sqlalchemy import SQLAlchemy 
from flask.ext.admin.form.widgets import DatePickerWidget 





basedir = os.path.abspath(os.path.dirname(__file__)) 
#print "basedir is %r " % (basedir) 
app = Flask(__name__) 


import views 

class AnotherSearchForm(Form): 
    place = StringField(default=u'Où voulez-vous aller?', validators=[Required()]) 
    checkin =TextField(default=u'checkin', validators=[Required()]) 
    checkout=TextField(default=u'checkout', validators=[Required()]) 
    dt = DateField('DatePicker', format='%Y-%m-%d') 

    submit = SubmitField('Rechercher') 

views.py

import os 
basedir = os.path.abspath(os.path.dirname(__file__)) 
from flask import Flask, render_template, session, redirect, url_for, current_app 


#from .. import db 
#from ..models import User 
#from ..email import send_email 
import landingpage 
from landingpage import app 
#from .forms import AnotherSearchForm 




@app.route('/', methods=['GET', 'POST']) 
def index(): 

    form = AnotherSearchForm() 
    return render_template('indexnew.html', 
          title='Home', 
          form=form) 

Die Anwendung läuft korrekt wie Sie unten sehen,

$ python runserver.py 
C:\Users\admin\Anaconda\lib\site-packages\flask_sqlalchemy\__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning. 
    warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.') 
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
* Restarting with stat 

aber versagt die Homepage indexnew.html auf http://127.0.0.1:5000/ zu laden geben a 404 Fehler:

127.0.0.1 - - [22/Apr/2016 14:10:21] "GET/HTTP/1.1" 404 - 
+0

Erhalten Sie eine Ausgabe in der Befehlszeile beim Zugriff auf die Seite? –

+0

nur der Fehler 404 oben. –

+0

Für mich sieht es so aus, als ob views.py nicht korrekt importiert wurde. –

Antwort

2

Sie erscheinen App in runserver.py sowie in Ihrem __init__.py

I definiert haben den Verdacht, dass runserver.py die App dort definiert ausgeführt wird, während die reale Anwendung tatsächlich eingerichtet wird und dann von Ihrem runserver.py außer Kraft gesetzt.

Sie möchten app in runserver.py importieren und verwenden, anstatt es erneut zu definieren.

Mit anderen Worten, entfernen Sie diese Zeile aus runserver.py ...

app = Flask(__name__)

Update

ich eine Version des Codes haben, die das Update ich vorschlagen hat. Sie können es auf GitHub finden:

https://github.com/martinpeck/stackoverflow_example_1

ich Ihren Code nahm.Er scheiterte in zweierlei Hinsicht:

  1. Ihr Import von Ansichten für mich nicht
  2. arbeiten, sobald ich festgelegt hatte, dass ich die

404 Ihren Code zu beheben:

  1. import views mit import landingpage.views in __init__.py
  2. wie oben vorgeschlagen ersetzen, entfernen app = Flask(__name__) von 0.123.
+0

Vielen Dank, dass der Fehler behoben. –

+0

@IPPOKRATISKARAKOTSOGLOU Fühlen Sie sich frei, um meine Antwort als richtig zu markieren, wenn es Ihr Problem behoben hat. Es wird mir helfen, und es wird anderen helfen, die Antwort auf ähnliche Probleme zu finden. –

+0

Es tut mir sehr leid. Ich habe es gerade jetzt getan. Gut gemacht. –