2

序文

こんにちは、Python 用のフラスコ モジュールを使用しようとすると、非常に奇妙なエラーが発生します...最初に、最初にプログラムを書き始めてから動作を停止したことを説明させてください。 ? 現在のバージョンのコードより前の 2 つのバージョンに戻そうとした後、まだ同じエラーが発生していました

さて、何が起こっているのかというと、フラスコアプリケーションを実行しようとすると

      Traceback (most recent call last):
    File "/Users/me/Desktop/ASL server/router.py", line 47, in <module>
      from flask import *
    File "/Library/Python/2.7/site-packages/flask/__init__.py", line 17, in <module>
      from werkzeug.exceptions import abort
    File "/Library/Python/2.7/site-packages/Werkzeug-0.9.4-py2.7.egg/werkzeug/__init__.py", line 154, in <module>
      __import__('werkzeug.exceptions')
    File "/Library/Python/2.7/site-packages/Werkzeug-0.9.4-py2.7.egg/werkzeug/exceptions.py", line 71, in <module>
      from werkzeug.wrappers import Response
    File "/Library/Python/2.7/site-packages/Werkzeug-0.9.4-py2.7.egg/werkzeug/wrappers.py", line 26, in <module>
      from werkzeug.http import HTTP_STATUS_CODES, \
    File "/Library/Python/2.7/site-packages/Werkzeug-0.9.4-py2.7.egg/werkzeug/http.py", line 28, in <module>
      from urllib.request import parse_http_list as _parse_list_header
  ImportError: No module named request

現在、モジュールをアンインストールして、サポートしているすべてのモジュールとともに再インストールしようとしました。コードはエラーが発生する前から元に戻されたコードであり、現在はエラーが再び発生しています (古いコードに変更は加えられていません) 何が問題なのかわかりません...

私のpythonコードは

    from flask import *
    import flask
    from flask import render_template
    import os
    import random
    import sys
    app = Flask(__name__)
    app.secret_key ="REST SECRET"
    ##############################################
    @app.errorhandler(503)                       #
    def page_not_found(e):                       #
        flash('503 Service Unavailable')         #
        return render_template('500.html'), 500  #
    @app.errorhandler(408)                       #
    def page_not_found(e):                       #
        flash('408 Request Timeout')             #
        return render_template('403.html'), 408  #
    @app.errorhandler(401)                       #
    def page_not_found(e):                       #
        flash('401- Restricted')                 #
        return render_template('403.html'), 401  #

    ##############################################
    def getip():
        c = request.remote_addr
        i = c.encode(encoding='UTF-8',errors='strict')
        ip = i.encode(encoding='UTF-8',errors='strict')

    @app.route('/')
    def home():
        ipa = getip()
        session[ipa] = ipa
        print session
        print ipa
        return render_template('index.html')


    @app.route('/donate')
    def donate():
        return render_template('donate.html')
    @app.route('/learn/fingerspell/end')
    def learnfinger():
        return render_template('Welcometofinger.html')
    @app.route('/learn/fingerspell',methods=["GET","POST"])
    def learnfingera():
        x = "a"
        if request.method == "POST":
            if request.form['next'] == "clear":
                return redirect('/learn/fingerspell/b')

        return render_template("fingerspell.html",error=x)

    @app.route('/learn/fingerspell/b',methods=["GET","POST"])
    def learnfingerb():
        x = "b"
        if request.method == "POST":
            if request.form['next'] == "clear":
                return redirect('/learn/fingerspell/c')

        return render_template("fingerspell.html",error=x)

    # And so on and on till you get to Z

    @app.route('/learn/fingerspell/z',methods=["GET","POST"])
    def learnfingerz():
        x = "z"
        if request.method == "POST":
            if request.form['next'] == "clear":
                return redirect('/learn/fingerspell/end')

        return render_template("fingerspell.html",error=x)



    @app.route('/learn/basic-words')
    def learnwordb():

        return render_template('bwordsmain.html')

    @app.route('/learn/basic-words/course')
    def learnwordb_course():
        flash("Welcome to your first lesson ")
        return 
    @app.route('/learn/basic-words/course/test/id1',methods=["GET","POST"])
    def test1baiscstart():
        score = 0
        if request.method == "POST":
            if request.form['a'] == "ASL":
                score += 1
        return render_template('test1.html')

    @app.route('/learn')
    def learn():
        return render_template('newopt.html')

    @app.route('/test/id/1',methods=["POST","GET"])
    def testabcs():
        score = 100
        missq = 0
        truea = 5
        if request.method == "POST":
            ab = request.form['qa']
            ba = request.form['qb']
            ca = request.form['qc']
            da = request.form['qd']
            ea = request.form['qe']
            a = str(ab).lower()
            b = str(ba).lower()
            c = str(ca).lower()
            d = str(da).lower()
            e = str(ea).lower()
            if True:
                if a != "asl is fun":
                    score -= 20
                    missq += 1
                elif b != "this isnt hard":
                    score -= 20
                    missq += 1
                elif c != "its fun":
                    score -= 20
                    missq += 1
                elif d != "m":
                    score -= 20
                    missq += 1
                elif e != "t":
                    score -= 20
                    missq += 1
                else:
                    flash("DEATH ERROR")
            flash("you scored "+ str(score)+"%  and missed " + str(missq) + " out of " + str(truea))
            return render_template('info.html')

        return render_template("abcstest.html")
    @app.route('/games')
    def games():
        return render_template("games.html")


    if __name__ == '__main__':
        port = int(os.environ.get('PORT', 5001))
        app.debug = True
        app.run(host='0.0.0.0',port=port)
4

2 に答える 2

1

実際、2 つのステートメントはほぼ同じことを行っています。

from flask import *
import flask

フラスコでメソッドを使用しようとすると、2 つの選択肢があります。

from flask import *
c = request.remote_addr

2番目:

import flask
c = flask.request.remote_addr

違いに気づきましたか? を使用する場合は、モジュールfrom a_module import *内でメソッド名を使用するだけで済みます。import a_modulea_module.method_name

于 2013-10-31T08:23:00.780 に答える
1

ディレクトリが壊れることがあります... ディレクトリからファイルをコピーして新しいディレクトリを作成し、サーバーを再実行してください。

以前は機能していたが、再び機能したため、これを理解しました。あなたのコードは大丈夫です!

于 2013-11-01T20:56:16.240 に答える