IBM 全栈开发【8】:用于人工智能和开发项目的 Python
近期在学习 IBM 全栈应用开发微学士课程,故此记录学习笔记。
1. Python 编码实践和打包概念
1.1. 开发生命周期
应用程序开发生命周期分为七个阶段,包括:
- 收集需求: 收集应用程序的用户、业务和技术需求。
- 分析: 分析需求。
- 设计: 设计完整的解决方案。
- 编码和测试: 构建和测试应用程序的不同组件。
- 用户和系统测试: 用户测试应用程序的可用性,进行系统集成测试和性能测试。
- 生产: 应用程序可供所有最终用户使用。
- 维护: 升级或修复任何用户或系统问题。
1.2. PEP8
PEP8 关于代码可读性的指导原则包括以下内容:
- 缩进四个空格。
- 空行用于分隔函数和类。
- 操作符周围和逗号后的空格。
PEP8 的编码规范具有一致性和可管理性,其中包括:
- 在函数内添加较大的代码块。
- 使用带下划线的小写字母命名函数和文件。
- 使用驼峰大写为类命名。
- 用大写字母命名常量,单词之间用下划线分隔。
1.3. 单元测试
单元测试是一种验证代码单元是否按设计运行的方法。在与最终代码库集成之前,必须测试每个单元。
1.3.1. 例子
def add(a,b): return a + bdef substract(a,b): return a - bimport unittestfrom math import add, substractclass TestMain(unittest.TestCase): def test_add(self): self.assertEqual(add(6,4),10) def test_substract(self): self.assertEqual(substract(6,4),3)1.4. 创建包
- 以软件包名称创建文件夹。
- 创建一个空的
__init__.py文件。 - 创建所需的模块。
- 在
__init__.py文件中,添加代码以引用软件包中需要的模块。
可以在 Python shell 中通过 bash 终端验证软件包。
1.5. 其他
关于网络应用程序,以下两种说法是正确的:
所有网络应用程序都是 API。
网络应用支持 CRUD 操作。
在哪个测试阶段验证应用程序在更大框架内的功能?:
集成测试。
PyLint 是一款 Python 静态代码分析工具。
在为一个管理活动的应用程序收集需求时,客户提到项目的目标是提高客户保留率。
业务需求 描述了上述情况。
2. 使用 Flask 部署网络应用程序
2.1. Flask
Flask 是一个微型框架,只需最少的依赖即可运行。Flask 具有调试服务器、路由、模板和错误处理等功能,可用于构建网站。Flask 可以作为 python 软件包安装。与 Flask 相比,Django 是一个全栈框架。你可以通过实例化 Flask 类来创建服务器。
Flask 为每次客户端调用提供一个请求和一个响应对象。可以从 Flask 请求中获取更多信息,如标题。您可以解析请求对象,获取查询参数、正文和其他参数。您甚至可以在将响应发送回客户端之前,在响应对象上设置状态。
可以使用动态路由创建 RESTful 端点。
HTTP 状态代码有多种类型,分别显示成功、用户错误或服务器错误。Flask 在响应时会隐式返回成功代码 200。您也可以明确提供状态代码。Flask 还提供应用程序级的错误处理程序。
Flask 支持 CRUD。
可以使用 Flask 渲染静态和动态模板。
2.1.1. 代码案例
实例化 Flask:
from flask import Flaskapp = Flask(__name__)@app.route 装饰器:
@app.route('/')def hello_world(): return "<b>My first Flask application in action!</b>"400 错误:
@app.route('/')def search_response(): query = request.args.get('q') if not query: return {"error_message": "Input parameter missing"}, 422 resource = fetch_from_database(query) if resource: return {"message": resource} else: return {"error_message": "Resource not found"}, 4043. 使用 Flask 创建人工智能应用并进行部署
Watson NLP 库被嵌入到实验网页中,外部工具无法访问。
3.1. 项目概述
在这个同行评分的毕业设计中,你将扮演一名软件工程师,需要开发一款基于人工智能的网络应用程序。您将分析情景并执行以下任务:
- 克隆项目资源库。
- 使用
Watson NLP库创建一个情绪检测应用程序。...
剩余内容已隐藏