可以使用代码实现蓝图对项目进行模块化数据库
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')
数据库分块json
# 注册db的函数 def register_db(app): db.init_app(app) # 建立全部和db相关联的表 with app.app_context(): db.create_all() return db
urls:flask
# 注册数据库
DB = register_db(app)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')post
可以说出断言的做用单元测试
断言就是判断一个函数或对象的一个方法所产生的结果是否符合你指望的那个结果测试
可以说出实现单元测试步骤url
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