栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python3Flask框架简单使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python3Flask框架简单使用

一、安装依赖库
pip install flask
pip install pymysql
pip install pyinstaller
二、app.py
from flask import Flask, json, request, jsonify
import pymysql
import time
import uuid

from werkzeug.utils import redirect



app = Flask(__name__) #实例化Flask 对像

#定义一个链接数据库的函数:
def getdb():
    return pymysql.connect(host='192.168.1.1',user='root',password='admin',database='work',charset='utf8')
    



@app.route('/login',methods = ['get','post'])#定义路由 方法
def login():
    username = request.args.get('username')#获取提交参数:
    pwd = request.args.get('pwd')#获取提交参数:
    db = getdb()#获取数据库链接
    c = db.cursor()#获取游标
    c.execute('SELECt * FROM users WHERe username = "%s"' % username)#执行SQL语句
    r = c.fetchone()#获取执行结果
    if r == None:#如果返回值为空
        db.close() #关闭数据库
        return jsonify({'code':1,'time':int(time.time()),'message':'账号不存在','data':None})#返回json对象
    if r[2]!=pwd: #如果密码错误
        db.close()
        return jsonify({'code':2,'time':int(time.time()),'message':'密码错误','data':None})#返回json对象
    if r[2]==pwd:#如果密码正确
        token = str(uuid.uuid1()).replace('-','') #生成令牌
        c.execute("INSERT INTO `work`.`tokens` (`uid`, `token`, `date`) VALUES (%s, '%s', %s)" % (r[0],token,int(time.time())))#将用户令牌插入数据
        db.commit()#提交事务
        db.close()
        return jsonify({'code':0,'time':int(time.time()),'message':'success','data':{'token':token}}) #返回带令牌的json对象
    db.close()
    return jsonify({'code':999,'time':int(time.time()),'message':'其他错误','data':None})#出错后返回其他错误


@app.route('/getuserinfo',methods = ['get','post']) #获取用户信息
def getuserinfo():
    token = request.args.get('token')
    db = getdb()
    c = db.cursor()
    c.execute('DELETE FROM `work`.`tokens` WHERe `date` < %s' % int(time.time()-600))#执行SQL删除所有过去令牌
    db.commit()
    c.execute('SELECt * FROM tokens WHERe token = "%s"' % token) #查询令牌是否存在
    r = c.fetchone()#从游标里获取结果
    if r == None:
        db.close()
        # return redirect('/static/index.html')
        return jsonify({'code':3,'time':int(time.time()),'message':'令牌不存在','data':None})
    c.execute('SELECt * FROM users WHERe id = %s' % r[1])# 使用tokens表内的用户ID从用户表获取用户信息
    r = c.fetchone()
    db.close()
    
    return jsonify({'code':0,'time':int(time.time()),'message':'success','data':{'id':r[0],'username':r[1],'name':r[3]}})#返回结果

@app.route('/')#访问根目录
def index():
     return redirect('/static/index.html')#则跳转




if __name__ == '__main__':
    app.run(host="0.0.0.0", port = 80, debug = True)
三、/static/index.html




    
    
    
    document
    
    



    
{{ userinfo.name }} 您好! 您的用户ID:{{ userinfo.id }} 您的用户名:{{ userinfo.username }}
三、/static/login.html



    
    
    
    document
    
    
    
    


    
提交
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294661.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号