前文:【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