python實戰flask簡易登錄註冊

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>
相關文章
相關標籤/搜索