1. 程式人生 > >項目遇到的小問題2

項目遇到的小問題2

系列 acc lazy sqlite rip 屬性 簡單的 home xiaomi

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 # 執行遷移

項目遇到的小問題2