Flask代码统计

代码统计

密码md5加密

在创建用户的时候,密码必须是密文的,可以通过md5加密,通过其他,如果不加密,一旦数据库泄露了,那么客户的信息就会有危险.

如何用md5进行加密?

def md5(arg):
    hash = hashlib.md5(Config.SALT)
    hash.update(bytes(arg,encoding='utf-8'))
    return hash.hexdigest()

在每次用户创建的时候都需要md5加密存入数据库,当用户再次登录的时候再MD5加密去获取.

 

解压zip文件并且计算行数插入数据库

from ..utils import sql
import os,shutil,uuid,datetime
def UpLoad():
    if request.method=='GET':
        return render_template('upload.html',session=session)

    now = datetime.date.today()

    code=request.files.get('code')

    #检查今天是否已经提交
    data = sql.fetch_one('select id from detail where sub_date=%s and user_id=%s',
                         (now, session.get('user_info').get('id')))
    if data:
        return '今天已经提交过了'

    # 1.检查上传文件的后缀名
    file_ext=code.filename.rsplit('.',maxsplit=1)

    # 2.校验是为zip文件
    if len(file_ext)!=2:
        return '必须上传zip文件'
    if file_ext[1]!='zip':
        return '必须上传zip文件'
    #路径拼接
    target_path=os.path.join('files',str(uuid.uuid4()))

    #解压zip文件并下载到本地
    shutil._unpack_zipfile(code.stream,target_path)

    ret=os.walk(target_path)

    total_line=0
    for base_path,folder_list,file_list in ret:
        # 文件路径,文件夹名字,文件名
        count_line=0
        for file_name in file_list:
            zip_file_ext=file_name.rsplit('.',maxsplit=1)
            #对文件进行校验
            if len(zip_file_ext) !=2:
                continue
            if zip_file_ext[1]!='py':
                continue
            # 拼接文件路径
            file_path=os.path.join(base_path,file_name)
            with open(file_path,'rb') as f:
                for line in f:
                    # 对每行的代码做校验
                    line=line.strip()
                    if not line:
                        continue
                    if line.startswith(b'#'):
                        continue
                    count_line+=1
        total_line+=count_line

    # 插入数据库
    sql.insert('insert into detail (number,sub_date,user_id) values (%s,%s,%s)',(total_line,now,session.get('user_info').get('id')))

    return redirect('/backend/userlist/')

 

posted @ 2018-08-07 20:35  R00M  阅读(201)  评论(0编辑  收藏  举报