我正在使用Flask建立一個網站,我遇到了一個問題,在創建一個賬戶后,網站并沒有將我重定向到主頁上。
main.py
from Flask import Flask, render_template, url_for, flash, redirect
from forms import RegistrationForm, LoginForm
app = Flask(__name__)
帖子 = [
{
'author': 'Corey',
'title': 'blg post',
'content': 'first post',
'date_posted': 'april 20 2021'。
},
{
'author': 'Hus',
'title': '2nd post',
'content': '2nd post',
'date_posted': 'May 20 2021'.
}
]
@app.route("/"))
@app.route("/home")>
def home()。
return render_template('home.html'/span>, posts=posts)
@app.route("/about")
def about() 。
return render_template('about.html', title='關于')
@app.route("/register", methods=['GET', 'POST')>
def register():
form = RegistrationForm()
if form.validate_on_submit()。
flash(f'Account Created for {form.username.data}!', 'success')
return redirect(url_for('home'))
return render_template('register.html', title='注冊', form=form)
@app.route("/login")
def login()。
form = LoginForm()
return render_template('login.html', title ='login', form=form)
if __name__ == '__main __':
app.run(debug=True)
form page
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmissionField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo
class RegistrationForm(FlaskForm)。
username = StringField('用戶名',
validators=[DataRequired(), Length(min=3, max=20) ])
email = StringField('Email', validators=[DataRequired(), Email()] )
password = PasswordField('密碼', validators=[DataRequired()])
confirm_password = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Sign Up')
class LoginForm(FlaskForm)。
email = StringField('Email', validators=[DataRequired(), Email()] )
password = PasswordField('密碼'/span>, validators=[DataRequired()])
remember = BooleanField('記住我',)
submit = SubmitField('Login')
html中的注冊頁面
{% extends "layout.html"%}{% block content %}.
{% block content %}
<div class="content-section">
<form meethod="POST" action=">
{{form.hidden_tag() }}}.
<fieldet class="form-group">
<legend class="border-bottom mb-4"> Join Today</legend>
<div class="form-group">
{{ form.username.label(class="form-control-label") }}
{{ form.username(class="form-control form-control-lg") }}
</div>
<div class="form-group">
{{ form.email.label(class="form-control-label") }}
{{ form.email(class="form-control form-control-lg") }}
</div>
<div class="form-group">
{{ form.password.label(class="form-control-label") }}
{{ form.password(class="form-control form-control-lg") }}
</div>
<div class="form-group">
{{ form.confirm_password.label(class="form-control-label") }}
{{ form.confirm_password(class="form-control form-control-lg") }}
</div>
</fieldset>
<div class="form-group">
{{ form.submit(class="btn btn-outline-info") }}
</div>
</form>
</div>
<div class="border-top pt-3">
<小 class="text-muted">。
已經有一個賬戶<a class="ml-2" href="{url_for('login')}}"> 登錄</a>。
</small>
</div>
{% endblock content %}
網站的布局
<! DOCTYPE html>
<html lang="en"/span>>
<head>
<!-- 必要的元標簽 -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" >
<!-- Bootstrap CSS -->
<link rel="styleheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"。
integrity="sha384-Gn5384xqQ1aoWXA 058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"/span> crossorigin="anonymous"/span>>
<link rel="styleheet" type="text/css" href="{ url_for('static', filename='static.css') }}">
{% if title %}{% if title
<title>Flask博客 - {{ title }}</title>
{% else %}
<title>Flask博客</title>。
{% endif %}
</head>
<body>
<header class="site-header"/span>>
<nav class="navbar navbar-expand-md navbar-dark bg-steel fixed-top" >
<div class="container">
<a class="navbar-brand mr-4" href="/"> Flask Blog</a>
< 按鈕 class="navbar-toggler"/span> type="button" data-toggle="collapse"/span> data- target="#navbarToggle" aria-controls="navbarToggle" aria-expanded="false" aria-label="切換導航">
<span class="navbar-toggler-icon"> </span>
</button>
<div class="collapse navbar-collapse" id=" navbarToggle">
<div class="navbar-nav mr-auto" >
<a class="nav-item nav-link" href="/"> Home</a>
<a class="nav-item nav-link" href="/about"> About</a>
</div>
<!-- 導航欄右側-->
<div class="navbar-nav" >
<a class="nav-item nav-link" href="/login"> Login</a>
<a class="nav-item nav-link" href="/register"> Register</a>
</div>
</div>
</div>
</nav>
</header>
<main role="main" class="container">
<div class="row">
<div class="col-md-8"/span>>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}。
{% for category, message in messages %}.
<div class="alert alert-{{ category }}">
{{資訊}}
</div>
{% endfor %}{% endif %}
{% endif %}{% endif %}
{% endwith %}{% endwith %}
{% block content %}{% endblock %} {% endblock %}
</div>
<div class="col-md-4"/span>>
<div class="content-section">
<h3>我們的邊欄</h3>。
<p class='text-muted'>你可以把任何資訊放在這里,你你喜歡。
<ul>
<li>最新帖子</li>
<li>公告</li>
<li>日程表</li>
<li>等</li>
</ul>
</p>
</div>
</div>
</div>
</main>
<!-- 可選的JavaScript -->
<!-- 先是jQuery,然后是Popper.js,然后是Bootstrap JS -->。
<腳本 src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
crossorigin="anonymous"></script>
<腳本 src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"></script>
<腳本 src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5 76PVCmYl"
crossorigin="anonymous"></script>
</body>
</html>
在點擊注冊頁面的注冊按鈕后,該頁面將我重定向到同一頁面,而不是主頁。
uj5u.com熱心網友回復:
在你的注冊頁中改變
<form meethod="POST" action=">
to
<form method="POST" action=">
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/329835.html
標籤:
