python-Web-flask-蓝图和单元测试

4 蓝图和单元测试:

 

能够使用代码实现蓝图对项目进行模块化

admin=Blueprint('admin',__name__) # 创建一个蓝图对象

@admin.route('/')

def admin_home(): 

    return 'admin_home'

# app内部注册

app.register_blueprint(admin,url_prefix='/admin')

# 注册静态目录的路由

# static_admin目录设置为静态目录

admin = Blueprint("admin",__name__,static_folder='static_admin')

app.register_blueprint(admin,url_prefix='/admin')

# static_admin 文件夹的路由设置为 /lib

admin = Blueprint("admin",__name__,static_folder='static_admin',static_url_path='/lib')

app.register_blueprint(admin,url_prefix='/admin')

数据库分块

# 注册db的函数
def register_db(app):
    db.init_app(app)
    # 创建所有和db相关联的表
    with app.app_context():
        db.create_all()
    return db

urls:

# 注册数据库
DB = register_db(app)

 

迁移分块

from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager

from urls import app
from urls import DB as db

# 命令操作
manager = Manager(app)
# 迁移
migrate = Migrate(app,db)
manager.add_command('db',MigrateCommand)

if __name__ == '__main__':
    manager.run()

 

设置模板目录

admin = Blueprint('admin',__name__,template_folder='my_templates')

能够说出断言的作用

断言就是判断一个函数或对象的一个方法所产生的结果是否符合你期望的那个结果

能够说出实现单元测试步骤

1定义一个类,继承自unittest.TestCase

2 在测试类中,定义两个测试方法

3 在测试类中,编写测试代码

登录测试

import json

import unittest

from demo1_login import app

class LoginTest(unittest.TestCase):

    """为登录逻辑编写测试案例"""

    def setUp(self):

        app.testing = True

        self.client = app.test_client()

 

    def test_empty_username_password(self):

        """测试用户名与密码为空的情况[当参数不全的话,返回errcode=-2]"""

        response = app.test_client().post('/login', data={})

        json_data = response.data

        json_dict = json.loads(json_data)

 

        self.assertIn('errcode', json_dict, '数据格式返回错误')

        self.assertEqual(json_dict['errcode'], -2, '状态码返回错误')

        # TODO 测试用户名为空的情况

        # TODO 测试密码为空的情况

 

    def test_error_username_password(self):

        """测试用户名和密码错误的情况[当登录名和密码错误的时候,返回 errcode = -1]"""

        response = app.test_client().post('/login', data={"username": "aaaaa", "password": "12343"})

        json_data = response.data

        json_dict = json.loads(json_data)

        self.assertIn('errcode', json_dict, '数据格式返回错误')

        self.assertEqual(json_dict['errcode'], -1, '状态码返回错误')

        # TODO 测试用户名错误的情况

        # TODO 测试密码错误的情况

 

if __name__ == '__main__':

    unittest.main()

 

能够说出单元测试所执行方法的定义规则

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

    def setUp(self):

        pass

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

    def tearDown(self):

        pass

    #测试代码

    def test_app_exists(self):

        pass

 

转载于:https://www.cnblogs.com/person1-0-1/p/11400756.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask 是一个轻量级的 Web 框架,它提供了一种易于使用的方式来构建 Web 应用程序。下面是 Flask 中一些常用的概念: 1. Flask app:Flask app 是一个 Flask 应用程序的实例,它封装了所有 Flask 相关的配置、路由、视图函数等。 2. Flask 蓝图Flask 蓝图是一种将 Flask 应用程序分成更小、更易于管理的部分的方式。每个蓝图都可以定义自己的路由、视图函数、模板等。 3. Flask 模板:Flask 模板是一种将动态数据与静态 HTML 页面结合起来的方式。Flask 使用 Jinja2 模板引擎,开发者可以使用模板语言来生成动态内容。 4. Flask 路由:Flask 路由用于将 URL 映射到视图函数。开发者可以使用 Flask 的路由装饰器来定义路由,例如:@app.route('/index')。 下面是一个简单的 Flask 应用程序示例,包括定义 Flask app、使用蓝图、定义模板和路由: ```python from flask import Flask, Blueprint, render_template app = Flask(__name__) # 定义蓝图 bp = Blueprint('bp', __name__) # 定义模板 @app.route('/index') def index(): return render_template('index.html') # 定义路由 @bp.route('/hello') def hello(): return 'Hello, World!' # 注册蓝图 app.register_blueprint(bp, url_prefix='/bp') if __name__ == '__main__': app.run() ``` 这个例子中,首先定义了一个 Flask app,然后定义了一个蓝图 bp,接着定义了一个模板 index.html 和一个路由 /hello,最后将蓝图注册到 app 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值