python 2.7html
app.pypython
# coding:utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8')#解決中文亂碼問題 from flask import Flask,request,render_template from flask_sqlalchemy import SQLAlchemy # 引入wtf表單 from wtforms import PasswordField,StringField,Form #引入表單驗證器 from wtforms.validators import DataRequired from models import * class LoginForm(Form): Username = StringField("Username",validators=[DataRequired()]) Password = PasswordField("Password",validators=[DataRequired]) import os app =Flask(__name__) app.config.from_object('config') #指定數據庫URI app.config['SQLALCHEMY_DATABASE_URI']=os.getenv('DATABASE_URL','mysql+pymysql://root:000000@localhost:3306/test') db = SQLAlchemy(app) # 登陸模塊 @app.route('/',methods=['GET','POST']) def login(): form = LoginForm(request.form)#表單賦值 message=""#初始化message if request.method=="POST": flag = Existed(form.Username.data,form.Password.data) if flag: message = "登錄成功!" else: message = "帳號或密碼錯誤!" return render_template("login.html",form=form,message=message) #註冊模塊 @app.route('/register',methods=['GET','POST']) def register(): form = LoginForm(request.form) # 表單賦值 message = ""#初始化message if request.method == 'POST': flag = Add_user(form.Username.data, form.Password.data) if flag == False: message = "用戶已存在!" else: message = "註冊成功!" return render_template("register.html", form=form, message=message ) if __name__ == '__main__': app.run(debug=app.config['DEBUG']) #調試模式
config.pymysql
DEBUG = True
models.pysql
# coding:utf-8 from app import db class User(db.Model): id = db.Column(db.Integer,primary_key=True,index=True) username = db.Column(db.String(30)) password = db.Column(db.String(30)) def Existed(u,p): users = User.query.filter_by(username=u).first() if users: if users.password==p: return True else: return False else: return False def Add_user(u,p): if User.query.filter_by(username=u).first(): return False else: print u,p user = User(username=u,password=p) db.session.add(user) db.session.commit() return True # Add_user('123','123')
templates/login.html數據庫
<!DOCTYPE html> <html lang="cn"> <head> <meta charset="UTF-8"> <title>login</title> </head> <body> <form method="post"> {{ message }} <p>{{ form.Username}}</p> <p>{{ form.Password }}</p> <input type="submit" value="login"> </form> </body> </html>
register/register.htmlflask
<!DOCTYPE html> <html lang="cn"> <head> <meta charset="UTF-8"> <title>register</title> </head> <body> <form method="post"> {{ message }} <p>{{ form.Username}}</p> <p>{{ form.Password }}</p> <input type="submit" value="login"> </form> </body> </html>