您好,欢迎访问一九零五行业门户网

python中flask的应用实例(代码)

本篇文章给大家带来的内容是关于python中flask的应用实例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
将用户登陆信息绑定数据库
要求将用户登陆时的信息,发送至后台与数据库进行比对,来判断用户是否可登陆
#config.py文件,用来创建远程连接的类class db:    host = '192.168.1.227'    user= 'root'    passwd = 'sheen'    port = 3306    dbname = 'test'
# 主程序import pymysqlfrom config import db# 1. 创建连接conn = pymysql.connect(    host=db.host,    user=db.user,    passwd=db.passwd,    port=db.port,    db=db.dbname,)cur = conn.cursor()def isuserexist(username):    判断用户名是否存在    sqli = select * from users where name='%s' %(username)    res = cur.execute(sqli)    # res返回的是sql语句查询结果的个数;    #  如果为0, 没有查到。    if res == 0:        return  false    else:        return  truedef ispasswdok(username, passwd):    sqli = select * from users where name='%s' and passwd='%s' %(        username, passwd)    res = cur.execute(sqli)    if res == 0 :        return  false    else:        return  truedef adduser(username, passwd):    用户注册时, 添加信息到数据库中    sqli = insert into users(name, passwd) values('%s', '%s') %(        username, passwd)    try:        res = cur.execute(sqli)        conn.commit()    except exception as e:        conn.rollback()        return e# cur.close()# conn.close()if __name__ == __main__:    adduser('root', 'root')    print(isuserexist('root'))    print(ispasswdok('root', 'root'))
判断用户是否登陆
某些网站的部分内容,只对已经登陆的用户显示,这时候,需要我们判断用户是否登陆
import randomimport osfrom datetime import  datetimeimport psutilfrom flask import flask, request, render_template, redirect, url_for, abort, sessionfrom models import ispasswdok, isuserexist, adduserimport platformapp = flask(__name__)app.config['secret_key'] =  random._urandom(24)import  functoolsdef is_login(f):    判断用户是否登陆的装饰器    @functools.wraps(f)    def wrapper(*args, **kwargs):        # run函数代码里面, 如果登陆, session加入user, passwd两个key值;        # run函数代码里面, 如果注销, session删除user, passwd两个key值;        # 如果没有登陆成功, 则跳转到登陆界面        if 'user' not in session:            return  redirect('/login/')        # 如果用户是登陆状态, 则访问哪个路由, 就执行哪个路由对应的视图函数;        return  f(*args, **kwargs)    return  wrapper# 用户主页@app.route('/')def index():    return render_template('index.html')# 用户登陆按钮@app.route('/login/', methods=['get', 'post'])def login():    if request.method == 'post':        print(request.form)        # 1. 如何获取到用户提交的信息呢?        user = request.form['user']        passwd = request.form['passwd']        # 2. 判断用户名和密码是否正确        if ispasswdok(user, passwd):                # 将用户名和密码信息存储到session中;                session['user'] = user                session['passwd'] = passwd                # 如果登陆成功, 跳转到主页;                return redirect(url_for('index'))        else:            # 如果登陆失败, 重新登陆;            return  render_template('login.html', message=用户名或者密码错误)    else:        # 用户是get请求, 返回登陆的html页面        # 1. 读取login.html文件的内容        # 2. 将读取的内容返回给用户界面        return render_template('login.html')# 用户注销@app.route('/logout/')def logout():    session.pop('user', none)    session.pop('passwd', none)    # 注销即删除用户的session信息, 注销成功, 跳转到首页;    return  redirect(url_for('index'))    # return  redirect('/')# 用户注册# http方法: get, post(需要提交用户名和密码信息)@app.route('/register/', methods=['get', 'post'])def register():    # 判断是否提交注册信息;    if request.method == 'post':        user = request.form['user']        passwd = request.form['passwd']        if isuserexist(user):            message = 用户已经存在            return  render_template('register.html', message=message)        else:            adduser(user, passwd)            return  redirect(url_for('login'))    else:        return  render_template('register.html')# 系统监控@app.route('/sysinfo/')@is_logindef sysinfo():    info = platform.uname()    # 获取开机时间的时间戳, 需要安装psutil模块;    boot_time = psutil.boot_time()    # 将时间戳转换为字符串格式, 两种方法, 任选一种l    # print(time.ctime(boot_time))    boot_time = datetime.fromtimestamp(boot_time)    # 获取当前时间    now_time = datetime.now()    # 获取时间差    delta_time = now_time - boot_time    delta_time = str(delta_time).split('.')[0]    return  render_template('sysinfo.html',                        hostname = info.node,                        sysname = info.system,                        release = info.release,                        machine = info.machine,                        now_time =  now_time,                        boot_time = boot_time,                        delta_time = delta_time                            )# 404异常处理: 类似于捕获异常@app.errorhandler(404)def not_found(e):    return  render_template('404.html')# 抛出异常@app.route('/user/<int:user_id>/')def user(user_id):    if 0 以上就是python中flask的应用实例(代码)的详细内容。
其它类似信息

推荐信息