2017-05-16 8 views
0

私はPythonでオンラインクラスをとり、web.pyを使ってウェブサイトを構築しようとしています。私はpython 3.6.1をWindows 10マシン上で実行しています。必要に応じて手動でweb.pyをインストールし、正しくインポートされていることを確認できました。私はgithubからweb.pyの "python3"と "p3"の両方のブランチを試してみましたが、どちらも同じ問題を引き起こします。python3の問題web.py

私は、以下の "urls"ステートメントで見られるように定義された3ページの単純なセットであると信じています。コードを実行してブラウザにアクセスして​​と入力すると、ホームページが表示されます。しかし、ランダムな結果を得るのは、web.application()呼び出しがランダムに2つの要素をURLで選択しているかのようです。私はhttp://localhost:8080/registerまたは/postregistration、まだ時々ブラウザは、私がやったかのように、それらのページをレンダリングするでしょうに入ったことはありません

404 - Not found 
500 - Key Error: '/register' 
500 - Key Error: '/postregistration' 
200 - Returns the Home page 
200 - Returns the Registration page 
200 - Returns the PostRegistration page 

注:私は、次の結果のいずれかを取得します。

私はそれが何をしているのか理解できませんし、私はインストラクターの例の行に従っていると思っていました。何かご意見は?

import web 
from Models import RegisterModel 

urls = { 
    '/', 'Home', 
    '/register', 'Register', 
    '/postregistration', 'PostRegistration' 
} 

render = web.template.render("Views/Templates", base="MainLayout") 
app = web.application(urls, globals()) 

#Classes/Routes 

class Home: 
    def GET(self): 
     return render.Home() 

class Register: 
    def GET(self): 
     return render.Register() 

class PostRegistration: 
    def POST(self): 
     data = web.input() 

     reg_model = RegisterModel.RegisterModel() 
     reg_model.insert_user(data) 
     return data.username 

if __name__ == "__main__": 
    app.run() 

答えて

0

お客様のurls変数はsetです。 tupleである必要があります。このことから、あなたのコードを変更します。これに

urls = { 
    '/', 'Home', 
    '/register', 'Register', 
    '/postregistration', 'PostRegistration' 
} 

を:

urls = (
    '/', 'Home', 
    '/register', 'Register', 
    '/postregistration', 'PostRegistration' 
) 
+0

はどうもありがとうございました!それが私の問題を解決しました。 – DACone

関連する問題