Flask python - POST 不工作 400 错误请求

问题描述 投票:0回答:1

我无法访问后端的文本框数据。我想在后端使用文本框值,但它说 400 错误请求。我看不到我的代码哪里出错了。我无法访问后端的文本框数据。

蟒蛇:

from flask import Flask, render_template, url_for, request,redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import tweepy


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db= SQLAlchemy(app)

@app.route('/')
def index():
    return render_template('home.html')


@app.route('/getlivedata', methods=['POST','GET'])
def stream():
    if request.method =="POST":
        rows = request.form['numtweets']
    else:
        return render_template('home.html')

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

HTML:

<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>CodePen - Navigation PageDesign/Lesson</title>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="sara mazal lessons">
<meta name="keywords" content="HTML, CSS, JavaScript, mazal, icons">
<meta name="author" content="Sara Mazal">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@200;300;400;500&family=Raleway:wght@100;200;300;400;500&family=Roboto:wght@300;400;700&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/particlesjs/2.2.3/particles.min.js"></script><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<link rel="stylesheet" href="{{ url_for('static',filename='css/style.css') }}">

</head>
<body>
<!-- partial:index.partial.html -->
<section class="nav">
   
  <h1>LIVE TWITTER DATA ANALYSIS</h1>
  <h3 class="span loader">
    <span class="m">S</spam><span class="m">E</spam><span class="m">N</spam><span class="m">T</spam><span class="m">I</spam><span class="m">M</spam><span class="m">E</spam><span class="m">N</spam><span class="m">T</spam><span class="m">A</spam><span class="m">L</spam><span class="m">&nbsp;</span><span class="m">A</spam><span class="m">N</spam><span class="m">D</spam><span class="m">&nbsp;</span><span class="m">C</spam><span class="m">A</spam><span class="m">T</spam><span class="m">E</spam><span class="m">G</spam><span class="m">O</spam><span class="m">R</spam><span class="m">I</spam><span class="m">C</spam><span class="m">A</spam><span class="m">L</spam>    </h3>
  <div class="nav-container"><a class="nav-tab" href="#tab-pwa">PWA</a><a class="nav-tab" href="#tab-graphql">GraphQL</a><a class="nav-tab" href="#tab-next">NEXT</a><a class="nav-tab" href="#tab-typescript">TYPESCRIPT</a><a class="nav-tab" href="#tab-deno">DENO</a><span class="nav-tab-slider"></span></div>
</section>
<form action="#" method="post">
<main class="main">
  <section class="slider" id="tab-pwa">
    <h1>PWA</h1>
  
        <input type="text" name="numtweets">
        <h3><a href="/getlivedata" name="getlivedata">GetLiveData</a></h3>

    <h2>the best of both worlds...</h2>
</section>
  <section class="slider" id="tab-graphql">
    <h1>GraphQL</h1>
    <h2>a query language for APIs</h2>
  </section>
  <section class="slider" id="tab-next">
    <h1>NEXT</h1>
    <h2>framework for Production</h2>
  </section>
  <section class="slider" id="tab-typescript">
    <h1>TYPESCRIPT</h1>
    <h2>giving you better tooling at any scale</h2>
  </section>
  <section class="slider" id="tab-deno">
    <h1>DENO</h1>
    <h2>a modern runtime</h2>
  </section>
</main>
</form>
<canvas class="background"></canvas>
<!-- partial -->
  <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js'></script><script  src="{{ url_for('static',filename='js/script.js') }}"></script>

</body>
</html>
python html flask post
1个回答
0
投票

将您的表单操作更改为“/getlivedata”,这样它就会在那里发布数据。此外,您似乎正在使用作为访问网址的方式。请改用提交按钮。

© www.soinside.com 2019 - 2024. All rights reserved.