02 2019 档案
摘要:模板结构组织 除了使用函数、过滤器等工具控制模板的输出外,jinja2还提供了一些工具来在宏观上组织模板内容。 局部模板 在Web程序中,我们通常会为每一类页面编写一个独立的模板。比如主页模板、用户资料也模板、设置页模板等。这些模板可以直接在视图函数中渲染并作为HTML响应主题。除了这类模板,我们还
阅读全文
摘要:flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成。 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTML代码中插入变量,这时我们需要使用模板引擎(template engine)。借助模板引擎,我们可以
阅读全文
摘要:CSRF(跨站请求伪造)攻击 CSRF(Cross Site Request Forgery,跨站请求伪造)是一种近年来才逐渐被大众了解的网络攻击方式,又被称为One-Click Attack或Session Riding。 攻击原理 CSRF攻击的大致方式如下:某用户登录了A网站,认证信息保存在c
阅读全文
摘要:XSS攻击 XSS(Cross-Site Scripting,跨站脚本)攻击历史悠久,是危害范围非常广的攻击方式。 Cross-Site Stripting的缩写本应该是CSS,但是为了避免和Cascading style sheets(层叠样式表)的缩写混淆,所以将Cross(即交叉)使用交叉形状
阅读全文
摘要:SQL注入 攻击原理 在编写SQL语句时,如果直接将用户传入的数据作为参数使用字符串拼接的方式插入到SQL查询中,那么攻击者可以通过注入其他语句来执行攻击操作,这些攻击包括可以通过SQL语句做的任何事:获取敏感数据、修改数据、删除数据库表等 攻击示例 假设我们的程序是一个学生信息查询程序,其中的某个
阅读全文
摘要:使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于XMLHttpRequest让我们在不重载页面的情况下和服务器进行数据交换。 加上JavaScript
阅读全文
摘要:对URL进行安全验证 结果: 控制台输出: request.host_url: http://127.0.0.1:5000/ ref_url: ParseResult(scheme=u'http', netloc=u'127.0.0.1:5000', path=u'/', params='', qu
阅读全文
摘要:重定向会上一个页面 在某些场景下,我们需要在用户访问某个url后重定向会上一个页面,比如用户点击某个需要登录才能访问的连接,这时程序会重定向到登录页面,当用户登录后比较合理的行为是重定向到用户登录前浏览的页面。 下面的例中,在foo和bar视图中生成连接,链接过去后,没有重定向会上一个页面 结果:
阅读全文
摘要:Flask上下文 Flask中有两种上下文,程序上下文(application context)和请求上下文(request context) 当客户端发来请求时,请求上下文就登场了。请求上下文里包含了请求的各种信息,比如请求的URL,请求的HTTP方法等。 上下文全局变量 视图函数需要上下文信息,
阅读全文
摘要:设置cookie HTTP协议是无状态的,在一次请求响应结束后,服务器不会留下关于客户端状态的信息。但是对于某些web程序来说,客户端的信息有必要被记住,比如用户的登录状态,这样就可以根据用户的状态来返回不同的响应。为了解决这个问题就有cookie技术 。cookie技术通过在请求和响应报文中添加c
阅读全文
摘要:请求钩子: 当我们需要对请求进行预处理和后处理时,就可以用Flask提供的回调函数(钩子),他们可用来注册在请求处理的不同阶段执行的处理函数。这些请求钩子使用装饰器实现,通过程序实例app调用,以 before_request钩子为例(请求之前),当你对一个函数附加了app.before_reque
阅读全文
摘要:Flask内置URL变量转换器: 转换器通过特定的规则执行,”<转换器: 变量名>”。<int: year>把year的值转换为证书,因此我们可以在视图函数中直接对year变量进行数学计算: @app.route('/goback/<int:year>' any转换器: 需要在转换器后添加括号来给出
阅读全文
摘要:@app.route('/hi',methods=['POST']) def hi(): return '<h1>Hello, Flask!</h1>' if __name__ == '__main__': app.run(debug = True) 在定义视图函数时,指定视图函数监听的方法为POS
阅读全文
摘要:Flask视图函数报fmalformed url rule错误,原因可能是包含中文字符了 把标点符号都重新写一遍英文格式的,可能就不会报这个了
阅读全文