摘要:前文編程實(shí)現(xiàn)和在中有函數(shù),用于解析模板,現(xiàn)在我們來簡單實(shí)現(xiàn)它。密碼的加密,可以使用這個(gè)庫,可以實(shí)現(xiàn)等多種方式,例如傳入的,會(huì)返回加密之后的字符串,值得一提的是的方法,和依次返回的結(jié)果是一樣。
前文:【python socket編程】—— 5.實(shí)現(xiàn)cookie和session
在Flask中有render_template函數(shù),用于解析jinja2模板,現(xiàn)在我們來簡單實(shí)現(xiàn)它。代碼如下:
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)
首先需要導(dǎo)入jinja2模塊中的Environment和FileSystemLoader,用os.path獲取到模板的存放位置templates_path,將其作為參數(shù)傳給FileSystemLoader實(shí)例化出一個(gè)loader對象,再將loader傳遞給Environment實(shí)例一個(gè)env對象,env對象的get_template方法獲取模板temp,調(diào)用temp.render返回渲染后的內(nèi)容,使用**kwargs來傳參數(shù)給模板。
密碼的加密,可以使用hashlib這個(gè)庫,可以實(shí)現(xiàn)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會(huì)返回sha256加密之后的字符串,值得一提的是sha256.update(new_string)的update方法,sha256.update("Hello World")和依次sha256.update("Hello ")、sha256.update("World")返回的結(jié)果是一樣。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41360.html
摘要:前文編程實(shí)現(xiàn)函數(shù)的實(shí)現(xiàn)很簡單,在服務(wù)器返回的響應(yīng)中,里增加,瀏覽器接受到中的,下次訪問這個(gè)網(wǎng)站的請求中就會(huì)帶上這個(gè)。此時(shí)服務(wù)端解析,根據(jù)就知道當(dāng)前用戶是登陸狀態(tài)的。顯然,直接在里寫用戶的是不安全的。下一篇文章編程簡單實(shí)現(xiàn)和密碼 前文:【python socket編程】—— 4.實(shí)現(xiàn)redirect函數(shù) cookie的實(shí)現(xiàn)很簡單,在服務(wù)器返回的響應(yīng)中,header里增加Set-Cook...
摘要:現(xiàn)在數(shù)據(jù)獲取到了,提示也有了,我們需要把注冊的數(shù)據(jù)寫入到數(shù)據(jù)庫,這一步很簡單,直接使用之前提到過的方法,但是我們不能直接把明文密碼寫入到數(shù)據(jù)庫中,那樣做是十分不安全的,我們需要將其加密之后再寫進(jìn)去,具體是用到中的這個(gè)函數(shù),將字符串變成值。 現(xiàn)在數(shù)據(jù)獲取到了,提示也有了,我們需要把注冊的數(shù)據(jù)寫入到數(shù)據(jù)庫,這一步很簡單,直接使用之前提到過的方法,但是我們不能直接把明文密碼寫入到數(shù)據(jù)庫中,那...
摘要:通過入門區(qū)塊鏈本文翻譯自的文章原文地址區(qū)塊鏈可能是繼互聯(lián)網(wǎng)之后最重大和最具突破性的技術(shù)。先不管對比特幣和其他加密貨幣價(jià)格的瘋狂行情,本文旨在幫助讀者入門區(qū)塊鏈技術(shù)。 通過Python入門區(qū)塊鏈 本文翻譯自 Adil Moujahid 的文章 A Practical Introduction to Blockchain with Python原文地址:http://adilmoujahi...
摘要:通過入門區(qū)塊鏈本文翻譯自的文章原文地址區(qū)塊鏈可能是繼互聯(lián)網(wǎng)之后最重大和最具突破性的技術(shù)。先不管對比特幣和其他加密貨幣價(jià)格的瘋狂行情,本文旨在幫助讀者入門區(qū)塊鏈技術(shù)。 通過Python入門區(qū)塊鏈 本文翻譯自 Adil Moujahid 的文章 A Practical Introduction to Blockchain with Python原文地址:http://adilmoujahi...
摘要:模板默認(rèn)保存在目錄。在使用函數(shù)調(diào)用模板文件時(shí),需要通過關(guān)鍵字參數(shù)指定值。模板中使用宏來防止代碼冗余。當(dāng)一個(gè)模板被另外的模板繼承時(shí),可以通過訪問父模板的資源。 什么是Jinja2 Jinja2是Python下一個(gè)被廣泛應(yīng)用的模版引擎,他的設(shè)計(jì)思想來源于Django的模板引擎,并擴(kuò)展了其語法和一系列強(qiáng)大的功能。其中最顯著的一個(gè)是增加了沙箱執(zhí)行功能和可選的自動(dòng)轉(zhuǎn)義功能,這對大多應(yīng)用的安全性來...
閱讀 3008·2021-10-13 09:39
閱讀 2705·2021-09-27 13:34
閱讀 2044·2019-08-30 15:55
閱讀 3269·2019-08-30 15:43
閱讀 3649·2019-08-30 11:16
閱讀 1767·2019-08-26 18:28
閱讀 1302·2019-08-26 13:56
閱讀 926·2019-08-26 13:35