簡體   English   中英

FLASK - 在服務器上找不到請求的 URL。 如果您手動輸入 URL 請檢查您的拼寫並重試

[英]FLASK - The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again

我正在使用 Flask 運行這個站點。 當我運行腳本時,會出現初始站點 (index.html),一切似乎都很好。 但是,當我單擊頁面底部的提交時,遇到此錯誤“在服務器上找不到請求的 URL。如果您手動輸入了 URL,請檢查您的拼寫並重試。”

你能幫我找出問題嗎? 主應用程序的代碼如下。

 from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

ENV = 'dev'
   
if ENV =='dev':
    app.debug = True
    app.config['SQLALCHEMY_DATABASEU_URI']   = 'postgresql://postgres:postgres@localhost/Jeopardy'
else:
    app.debug = False
    app.config['SQLALCHEMY_DATABASEU_URI']   = ''

#sapp.config.from_object(os.environ['APP_SETTINGS'])
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False


db=SQLAlchemy(app)

class Jeo(db.Model):
    __tablename__ = 'allc'

    number = db.Column(db.Integer, primary_key=True)
    category = db.Column(db.String())
    question = db.Column(db.String())
    answer = db.Column(db.String())

    def __init(self,category,question,answer,number):
        self.category = category
        self.question = question
        self.answer = answer
        self.number = number

@app.route('/')
def index():
    return render_template("index.html")
@app.route("/add")
def add():
    category=request.args.get('category')
    question=request.args.get('question')
    answer=request.args.get('answer')
    number=request.args.get('number')
    try:
        allc=Jeo(
            category = category,
            question = question,
            answer = answer,
            number = number
        )
        db.session.add(allc)
        db.session.commit()
        return " added. "
    except Exception as e:
        return(str(e))


@app.route("/add/form",methods=['GET', 'POST'])
def add_form():
    if request.method == 'POST':
        category=request.get('category')
        question=request.get('question')
        answer=request.get('answer')
        number=request.get('number')
    
    try:
            allc=Jeo(
            category = category,
            question = question,
            answer = answer,
            number = number
            )
            db.session.add(allc)
            db.session.commit()
            return ("added. ")
    except Exception as e:
            return(str(e))
    return render_template('index.html')
if __name__ == '__main__':
    app.run()

並且代碼 index.html 代碼為:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device=width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="../static/style.css">
    <title>Jeopardy</title>
</head>
<body>
    <div class="="container">
        <img src="../static/logo.png" alt="Jeopardy" class ="logo">
        <!-- @todo - message-->
        <form action = "/submit" methods="POST">
            <div class =  " form-group">
            <h3>Jeopardy Question</h3>
                <input
                    type = "text"
                    name = "Question"
                    placeholder= "Type the Jeopardy question here" 
                    />
            </div>
            <div class =  " form-group">
                <h3>Jeopardy Answer</h3>
                    <input
                        type = "text"
                        name = "Answer"
                        placeholder= "Type the Jeopardy Answer here" 
                        />

                </div>
            
        </form>
    </div>
</body>
</html>

問題就在這里......你必須寫表單action =“add”的地方你已經把它寫成action =“submit”

<form action = "/add" methods="POST">
            <div class =  " form-group">
            <h3>Jeopardy Question</h3>
                <input
                    type = "text"
                    name = "Question"
                    placeholder= "Type the Jeopardy question here" 
                    />
            </div>
            <div class =  " form-group">
                <h3>Jeopardy Answer</h3>
                    <input
                        type = "text"
                        name = "Answer"
                        placeholder= "Type the Jeopardy Answer here" 
                        />

                </div>
  
        </form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM