完成登录功能,用session记住用户名
登录功能完成:
1.js:设置return
2.html:设置
1.form
2.input
3.onclick="return fnLogin()"
3.py:
1.@app.route设置methods
2.GET
3.POST
- 读取表单数据查询数据库
- 用户名密码对:
- 记住用户名
- 跳转到首页
- 提示相应错误。
- 用户名密码对:
session:
1.从`flask`中导入`session`
2.设置`SECRET_KEY`
3.操作字典一样操作`session`:增加用户名`session['username']=`username
function fnLogin() { var oUname=document.getElementById("uname") var oUpass=document.getElementById("upass"); var oError=document.getElementById("error_box") var isError=true; oError.innerHTML="<br>" if(oUname.value.length<6|| oUname.value.length > 20){ oError.innerHTML="用户名至少6-20位" return false; }else if((oUname.value.charCodeAt(0)>=48) && (oUname.value.charCodeAt(0)<=57)){ oError.innerHTML="first.number." return false; }else for(var i=0; i<oUname.value.length;i++) { if ((oUname.value.charCodeAt(i) < 48 || oUname.value.charCodeAt(i) > 57) && (oUname.value.charCodeAt(i) < 97 || oUname.value.charCodeAt(i) > 122 )) { oError.innerHTML = "only letter or number."; return false; } } if(oUpass.value.length<6|| oUpass.value.length > 20){ oError.innerHTML="密码至少6-20位" return false; } if((oUname.value.length < 6 || oUname.value.length > 20) && (oUpass.value.length < 6 || oUpass.value.length > 20)){ oError.innerHTML="用户名密码至少6-20位" return false; } return true; window.alert("登录成功") }
{% extends 'base.html' %} {% block title %} 登录 {% endblock %} {% block head %} <link href="{{ url_for('static',filename='css/ll.css') }}" rel="stylesheet" type="text/css"> <script src="{{ url_for('static',filename='js/ll.js')}}"></script> {% endblock %} {% block main %} <body> <div class="box"> <h2 class="d">登录</h2> <form action="{{url_for('ll')}}" method="post"> <div class="input_box"> <input style="background-color: deepskyblue;" id="uname" type="text" placeholder="请输入用户名" name="username"> </div> <br> <div class="input_box"> <input style="background-color: deepskyblue;" id="upass" type="password" placeholder="请输入密码" name="password"> </div> <br> <div id="error_box"><br></div> <div class="input_box"> <button class="dl" onclick="fnLogin()">enter</button> </div> <br> </div> </div> </body> </html> {% endblock %}
py文件
from flask import Flask,render_template,request,redirect,url_for,session from flask_sqlalchemy import SQLAlchemy import config from functools import wraps from datetime import datetime 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)) @app.route('/') def base(): return render_template('base.html') @app.route('/ll/',methods=['GET','POST']) def ll(): if request.method=='GET': return render_template('ll.html') else: username=request.form.get('username') password=request.form.get('password') user=User.query.filter(User.username==username,User.password==password).first() if user: session['user']=username session.permanent=True return redirect(url_for('base')) else: return u'error username or password' @app.route('/zc/',methods=['GET','POST']) def zc(): if request.method=='GET': return render_template('zc.html') else: username=request.form.get('username') password=request.form.get('password') user = User.query.filter(User.username==username).first() if user: return u'username existed' else: user = User(username=username, password= password) db.session.add(user) db.session.commit() return redirect(url_for('ll')) # @app.route('/wd/') # def wd(): # return render_template('wd.html') if __name__ == '__main__': app.run(debug=True)
浙公网安备 33010602011771号