前文:【python socket編程】—— 5.實現cookie和sessionpython
在Flask
中有render_template
函數,用於解析jinja2
模板,如今咱們來簡單實現它。代碼以下:編程
from os import path from jinja2 import Environment, FileSystemLoader project_path = path.abspath(path.join(path.dirname(__file__), '..')) templates_path = '{}/templates'.format(project_path) loader = FileSystemLoader(templates_path) env = Environment(loader=loader) def render_template(template, **kwargs): temp = env.get_template(template) return temp.render(**kwargs)
首先須要導入jinja2
模塊中的Environment
和FileSystemLoader
,用os.path
獲取到模板的存放位置templates_path
,將其做爲參數傳給FileSystemLoader
實例化出一個loader
對象,再將loader
傳遞給Environment
實例一個env
對象,env
對象的get_template
方法獲取模板temp
,調用temp.render
返回渲染後的內容,使用**kwargs
來傳參數給模板。segmentfault
密碼的加密,能夠使用hashlib
這個庫,能夠實現md5
、sha1
、sha256
等多種hash
方式,例如:cookie
import hashlib def generate_hash(string): new_string = string.encode('ascii') sha256 = hashlib.sha256() sha256.update(new_string) return sha256.hexdigest()
傳入的string
,generate_hash
會返回sha256
加密以後的字符串,值得一提的是sha256.update(new_string)
的update
方法,sha256.update("Hello World")
和依次sha256.update("Hello ")
、sha256.update("World")
返回的結果是同樣。session