项目遇到的小问题2

MD5算法(摘要算法、哈希算法)
  1.MD5算法特点
    压缩性:任意长度的数据,算出的MD5值长度都是固定的
    容易计算:从原数据计算出MD5值很容易
    抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别
    弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的
    强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的
  2.MD5算法优点
    方便存储:MD5加密出来都是32位的字符串,能够给定固定大小的空间存储,传输,验证
    文件加密:MD5运用在文件加密上很有优势,因为只需要32位字符串就能对一个巨大的文件进行验证完整性
    不可逆:MD5加密出来只会截取末尾32位,具有良好的安全性,如果是对于参数加密很难伪造MD5
    加密损耗低:MD5加密对于性能的消耗微乎其微
  3.运用场景
    用户密码,请求参数,文件校验
  4.原理
    MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值

使用sqlalchemy创建数据表时,出现 Access denied for user 'root'@'localhost'
  出现这种情况最简单的解决办法是:卸载重装mysql,一定要清理干净
  删除mysql:sudo apt-get remove mysql-*
  清理残留数据:dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P(出现对话框选择yes)
完美解决sublime不能输入中文的问题
  sudo apt-get update && sudo apt-get upgrade
  git clone https://github.com/lyfeyaj/sublime-text-imfix.git
  cd sublime-text-imfix
  ./sublime-imfix
sqlite插入数据
  from flasker.models import Student
  from . import db
  @app.route('/', methods=['GET', 'POST'])
    def home():
      xaioming = Student(score=35)
      db.session.add(xiaoming)
      db.session.commit()
      return "home"
sqlite查询数据
  ret = Student.query.all()
flask_script
  作用:提供命令行与flask的交互功能
  from flask_script import Manager
  app = create_app()
  manager = Manager(app)
  @manager.command
  def hello():
    print('hello')
  进入虚拟环境,执行:python manage.py shell
    from manage import hello
    hello()
有一个relationship时,使用backref=''
有两个relationship时,使用back_populates='',两个relationship中都要写对方的名字,以后查找数据就可以直接.对方的名字

一对多惰性查询
  在relationship中添加lazy='dynamic'

数据迁移(db.create_all()只能创建数据表,要是数据表中有数据改动要使用数据迁移)
  新增加字段一定要添加nullable=True
  from flask_migrate import Migrate, MigrateCommand
  # Migrate:完成app的扩展
  # MigrateCommand:支持flask_script扩展,去操作数据库迁移
  migrate = Migrate(app, db) # 需要把数据库传递进去
  manage.add_command('db', MigrateCommand) # 添加命令
sqlite不支持删除列,只支持改表名和增加列
在命令行执行
  python manage.py db init # init:为你的应用程序初始化migration,会自动生成一个migrations文件夹
  python manage.py db migrate
    # 会生成一个versions迁移文件
    1.检测表的增加和删除
    2.检测列的增加和删除
    3.列的nullable属性的变更
    4.检测基本索引的变更或者unique约束的变更
    5.检测外键约束的变更
  python manage.py db upgrade # 执行迁移

猜你喜欢

转载自www.cnblogs.com/ccmldl/p/9581788.html