【python socket编程】—— 6.简单实现

系统 1861 0

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 来传参数给模板。


密码的加密,可以使用 hashlib 这个库,可以实现 md5 sha1 sha256 等多种 hash 方式,例如:

            
              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") 返回的结果是一样。

 

 

 

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论