Flask框架(五)----补充

蓝图

蓝图进行模块化开发的使用流程:

1.创建蓝图对象(容器)

2.装饰视图函数(装视图函数)

3.注册蓝图到app中(添加到app)

副模块中

from flask import Blueprint

# 1.创建蓝图对象

#参数1: 蓝图名称

#参数2: 表示模块名称

#参数3: url_prefix,视图函数访问前缀

#参数4: static_folder,静态资源文件夹

#参数5:模板文件所在的文件夹

user_blu = Blueprint("user",__name__,url_prefix='/user',static_folder='static',template_folder="templates")

product_blu = Blueprint("product",__name__)

Blueprint是继承自Flask类,和app一样的功能

pruduct是这个蓝图对象的标识名

# 2.装饰视图函数

@product_blu.route('/get_detail')

def detail():在url_map返回的是标识名.函数名

    return "<script>alert('你傻x')</script>"

主模块中:

from flask import Flask

from demo05product import product_blu

app = Flask(__name__)

# 3.注册蓝图到app中

app.register_blueprint(product_blu)

if __name__ == '__main__':

    print(app.url_map)

    app.run(debug=True)

 

 

单元测试

常用的断言方法:

assert: 断言, 判断条件是否成立

格式: assert boolean表达式1, 异常信息

    如果表达式1为True, 正常执行程序

如果表达式1为False, 报错异常信息,停止程序 

assert isinstance(num1,int),"num1必须是int类型"(报出的异常信息)

assertEqual     如果两个值相等,则pass

assertNotEqual  如果两个值不相等,则pass

assertTrue      判断bool值为True,则pass

assertFalse     判断bool值为False,则pass

assertIsNone    不存在,则pass

assertIsNotNone 存在,则pass

 

 

setUp: 测试案例执行前执行,适合做初始化操作,数据库创建

tearDown: 测试结束后,关闭会话,删除数据库,关闭IO流

测试方法(案例): 必须以test开头

注意点:

测试方法执行的时候,与位置有关

import unittest

class TestClass(unittest.TestCase):

 

    #该方法会首先执行,相当于做测试前的准备工作

    def setUp(self):

        print("setup")

    #该方法会在测试代码执行完后执行,相当于做测试后的扫尾工作

    def tearDown(self):

        print("tearDown")

    #测试代码

    def test_app_exists(self):

        # self.assertEqual(1,2,"两者必须相等")

        # result = {

        #     "errcode": -2,

        #     "errmsg": "params error"

        # }

        # self.assertIn("errcode10",result,"字典中必须包含errcode key")

        # self.assertIsNotNone("haha","对象不能为空")

        pass

    def test_app(self):

        print("test_app")

 

 

 

 

补充知识点:

cookie:

cookie是为了辨别用户身份,进行会话追踪而储存在用户本地的数据(通常进行加密).

* Cookie是由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key/value保存,下次请求同一网站时就发送该Cookie给服务器.

* Cookie中的key/value可以由服务器端自己定义。

 

Cookie是存储在浏览器中的一段纯文本信息,建议不要存储敏感信息如密码,因为电脑上的浏览器可能被其它人使用

Cookie基于域名安全,不同域名的Cookie是不能互相访问的

如访问itcast.cn时向浏览器中写了Cookie信息,使用同一浏览器访问baidu.com时,无法访问到itcast.cn写的Cookie信息

浏览器的同源策略

当浏览器请求某网站时,会将本网站下所有Cookie信息提交给服务器,所以在request中可以读取Cookie信息 

 

 

 

session:

对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息,所以可以使用session进行保存

在服务器端进行状态保持的方案就是Session

flask response对象

 

 

mimt-type说穿了其实指的就是文件后缀名。

你向web服务器请求一个文件,服务器会根据你的后缀名去匹配对应的值设置为response中content-type的值。

而content-type是正文媒体类型,游览器根据content-type的不同来分别处理你返回的东西。

text/html(默认的,html文件)

text/plain(纯文本)

text/css(css文件)

text/javascript(js文件)

application/x-www-form-urlencoded(普通的表单提交)

multipart/form-data(文件提交)

application/json(json传输)

application/xml(xml文件)

字典转json(字符串):

dict = {

“name”:”banzhang”,

“age”:13

}

josn_data = json.dumps(dict)

json转字典:

dict_data = json.loads(json_data)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值