码迷,mamicode.com
首页 > 编程语言 > 详细

python实战flask简易登陆注册

时间:2019-03-13 21:42:18      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:python   debug   get   表单验证   登录模块   getenv   import   require   数据库   

python 2.7

app.py

# 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.py

DEBUG = True

models.py

# 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.html

<!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>

  

 

python实战flask简易登陆注册

标签:python   debug   get   表单验证   登录模块   getenv   import   require   数据库   

原文地址:https://www.cnblogs.com/wxzbk/p/10526321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!