[英]Python flask application login
我是 python/flask 的新手,並開始了我的第一個項目,該項目顯示數據庫中的數據,現在 sqlite 作為可搜索表。 我現在的問題是每個人都可以編輯並向數據庫添加新數據,因為我沒有提供登錄名(CRUD 工作正常)。 是否可以在不注冊的情況下添加登錄名? 我只需要某些人可以訪問 CRUD 功能,而其他人只是為了能夠查看表格並在其中搜索。 這些特定的(“管理員”)人也不應該需要注冊,也許只需輸入一個預設的硬編碼名稱/密碼即可登錄。
我已經嘗試過這樣的事情:
@app.route("/")
@app.route("/login", methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
if form.loginname.data == 'admin' and form.loginpassword.data == 'password':
flash('Logged in!', 'success')
return redirect(url_for('RetrieveList'))
else:
flash('Coulnd't log in!', 'danger')
return render_template('login.html', title='Login', form=form)
表格:
class LoginForm(FlaskForm):
loginname = StringField("Name", validators=[InputRequired()])
loginpassword = PasswordField("Passwort", validators=[InputRequired()])
submit = SubmitField("Log in")
登錄.html
<div class="content-section" style="margin-left: 20px; margin-right: 20px;">
<form action='' method="POST">
{{ form.hidden_tag() }}
<fieldset class="form-group">
<legend>Login</legend>
<div class="form-group">
{{ form.loginname.label(class="form-control-label") }}
{{ form.loginname(class="form-control form-control-lg") }}
</div>
<div class="form-group">
{{ form.loginpassword.label(class="form-control-label") }}
{{ form.loginpassword(class="form-control form-control-lg") }}
</div>
<div class="form-group">
{{ form.submit(class="btn btn-outline-info") }}
</div>
</fieldset>
</form>
</div>
<div class="border-top pt-3">
<small class="text-muted">
Go to search <a class="ml.2" href="{{ url_for('RetrieveListView') }}">HOME</a>
</small>
</div>
Retrievelist 然后在理論上擁有具有所有功能的頁面,例如“編輯/刪除/新建”,但我收到“方法不允許”錯誤消息。
@app.route("/data")
def RetrieveList():
employees = WissenModel.query.all()
return render_template("datalist.html", employees=employees)
RetrieveListView 的頁面沒有“編輯/刪除/新建”按鈕。
提前致謝!
405 (又名Method not allowed )是當您使用 HTTP 方法發送請求時,某些路由不應該處理。 當您不提供route
的methods
參數時,它默認只有 GET。 在您的表格中:
<form action='' method="POST">
您將 POST 請求發送到 /,但您的路線:
@app.route("/")
@app.route("/login", methods=['GET', 'POST'])
只期望 GET 在 /
要使其工作,請將您的action
更改為/login (或使用url_for
)或將 POST 方法添加到 / 路由。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.