html登录后记住用户名,完成登录功能,用session记住用户名
登錄功能完成:
1.js:設置return
function fnLogin() {
var oUname=document.getElementById("uname");
var oUpass=document.getElementById("upass");
var oError=document.getElementById("error_box");
var isError=true;
oError.innerHTML="
"
//uname
if ((oUname.value.length < 6) || (oUname.value.length > 20)) {
oError.innerHTML = "用戶名要6-20位";
isError=false;
return isError;
}else if ((oUname.value.charCodeAt(0)>=48)&&(oUname.value.charCodeAt(0)<=57)){
oError.innerHTML="首字母必須是字母";
isError=false;
return isError;
}else {
for(var i=0;i
if ((oUname.value.charCodeAt(i)<48)||(oUname.value.charCodeAt(i)>57)&&(oUname.value.charCodeAt(i)<97) ||(oUname.value.charCodeAt(i)>122)){
oError.innerHTML="用戶名只能是字母和數字";
isNotError=false;
return isError;
}
}
}
//upass
if ((oUpass.value.length < 6 )|| (oUpass.value.length > 20)) {
oError.innerHTML = "密碼要6-20位";
isError=false;
return isError;
}
return isError;
window.alert("登錄成功!")
}
2.html:設置
form
input{% extends'base.html' %}
{% block title %}登錄{% endblock %}
{% block head %}
{% endblock %}
{% block main %}
登錄
沒有賬號?立即注冊
登錄
{% endblock %}
3.py:
@app.route設置methods
GET
POST讀取表單數據
查詢數據庫用戶名密碼對:記住用戶名
跳轉到首頁
用戶名密碼不對:提示相應錯誤。from flask import Flask, render_template, request, redirect, url_for, session
from flask_sqlalchemy import SQLAlchemy
import config
app=Flask(__name__)
app.config.from_object(config)
db=SQLAlchemy(app)
# 創建用戶模型
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
username = db.Column(db.String(20),nullable=False)
password = db.Column(db.String(20),nullable=False)
nickname=db.Column(db.String(50))
# db.create_all()
# 首頁
@app.route('/')
def index():
return render_template('base.html')
#登錄
@app.route('/login/',methods={'GET','POST'})
def login():
if request.method=='GET':
return render_template('login.html')
else:
username = request.form.get('username') # 獲取form中的數據
password = request.form.get('password')
nickname = request.form.get('nickname')
user = User.query.filter(User.username == username).first()
if user:
if user.password==password:
session['user'] = username
session.permanent=True
return redirect(url_for('index')) # 返回到首頁
else:
return u'error username or password' #輸出錯誤
#注冊
@app.route('/enroll/',methods={'GET','POST'})
def enroll():
if request.method=='GET':
return render_template('enroll.html')
else:
username=request.form.get('username')# 獲取form中的數據
password=request.form.get('password')
nickname=request.form.get('nickname')
user = User.query.filter(User.username == username).first()
if user:
return u'username existed'
else:
user = User(username=username, password=password, nickname=nickname)
db.session.add(user)#數據庫操作
db.session.commit()
return redirect(url_for('login'))# 重定向到登錄頁
#提問
@app.route('/questions/')
def questions():
return render_template('questions.html')
if __name__ == '__main__':
app.run(debug=True)
session:
從`flask`中導入`session`
設置`SECRET_KEY`
操作字典一樣操作`session`:增加用戶名`session['username']=`usernameimport os
SECRET_KEY = os.urandom(24)
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/mis_db?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False
1.網頁運行結果:
成功運行跳轉到首頁:
2.數據庫運行結果:
來源:https://www.cnblogs.com/iamzhuangyuan/p/7871801.html
總結
以上是生活随笔為你收集整理的html登录后记住用户名,完成登录功能,用session记住用户名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java接口调试思想
- 下一篇: html中刷新按钮的代码,常见的按钮类型