Flask连接mysql,实现页面登录
时间:2019-09-18
本文章向大家介绍Flask连接mysql,实现页面登录,主要包括Flask连接mysql,实现页面登录使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
主要代码:
from flask import Flask,request,g,session,flash,redirect,url_for,render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:12345678@localhost/mydb'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
name = db.Column(db.String(20), nullable=False)
password = db.Column(db.String(30), nullable=False)
def __repr__(self):
return 'User:%s'%self.name
db.create_all()
@app.route('/login',methods=['POST','GET'])
def login():
if request.method == 'POST':
name = request.form['user']
password = request.form['passwd']
from sqlalchemy import and_#导入and_ 与查询
cursor = User.query.filter(and_(User.name==name,User.password==password)).first()#查询数据库,first()返回查询的第一个结果,如果没有返回None
if cursor is not None:
session['user'] = name
flash('Login successfully!')
return redirect(url_for('index'),302)
else:
flash('No such user!','error')
return redirect(url_for('login'),302)
else:
return render_template('login.html')
@app.route('/')
def index():
if 'user' in session:
return render_template('hello.html', name=session['user'])
else:
return redirect(url_for('login'),302)
@app.route('/logout')
def logout():
session.pop('user', None)
return redirect(url_for('login'), 302)
app.secret_key = '12345678'
if __name__ == '__main__':
app.run(host='127.0.0.1', debug=True)
页面HTML:
{% extends "layout.html" %}
{% block body %}
<form name="login" action="/login" method="post">
Username: <input type="text" name="user" /><br>
Password: <input type="password" name="passwd" /><br>
<input type="submit" value="Submit" />
</form>
{% endblock %}
原文地址:https://www.cnblogs.com/hnsya/p/11543756.html
- Java基础04 封装与接口
- Maven那点事儿(Eclipse版)
- 【Spring开发】—— Spring注入静态变量
- java判断list为空
- Java基础01 从HelloWorld到面向对象
- Java基础02 方法与数据成员
- 【Spring实战】—— 13 AspectJ注解切面
- EasyUI日期选择框
- Java基础03 构造器与方法重载
- web.xml is missing and <failOnMissingWebXml> is set to true
- 【Spring实战】—— 11 通过AOP为特定的类引入新的功能
- 使用Maven创建web项目
- 纸上谈兵: 树, 二叉树, 二叉搜索树
- 【Spring实战】—— 9 AOP环绕通知
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法