在本教程中,将介绍如何使用Python的Flask框架和TypeScript的Angular框架来构建一个简单的CRUD(创建、读取、更新和删除)系统,用于管理客户信息。这个系统可以进一步扩展,构建成一个功能完备的客户管理系统。
在开始实践步骤之前,让简要了解一下本教程中将要使用的技术:
Flask:一个用于构建Web应用的Python微框架,以其轻量和可扩展性而闻名。Flask的一些特点包括:
Angular 5:Angular的最新版本,是构建前端应用的最流行的客户端框架之一,使用TypeScript。Angular由Google创建、使用和支持。
SQLAlchemy:一个Python ORM(对象关系映射器)和SQL工具包,允许Python开发者使用SQL数据库(用于数据持久化和检索),而无需了解或处理SQL,而是使用Python对象和方法。
在本节中,将学习如何安装Flask和Angular来设置开发环境。
首先,要完成本教程,需要:
pip install pipenv
)。安装Docker后,只需要运行以下命令即可创建PostgreSQL数据库:
docker run --name crmdb -p 5432:5432 -e POSTGRES_DB=crmdb -e POSTGRES_PASSWORD=p4ssw0rd -d postgres
如果在系统中安装了PostgreSQL并想使用它而不是docker,请运行以下命令:
createdb crmdb
现在需要安装Angular CLI,回到终端并运行以下命令:
npm install -g @angular/cli
可能需要根据npm配置,在命令前添加sudo。
现在已经设置了PostgreSQL数据库和Angular CLI。让用Python和Flask引导后端应用。
首先,使用以下命令为项目创建必要的文件夹:
mkdir flask-crm
cd flask-crm
mkdir backend
导航回flask-crm的根目录,然后使用pipenv初始化一个新的Python 3环境,这将用于隔离项目的包,使其与系统范围的包分开。
pipenv --three
将在flask-crm中创建一个Pipfile。
现在可以安装项目的Python依赖项,即flask(Flask框架的包)、marshmallow(序列化和反序列化JSON对象的包)、sqlalchemy(SQLAlchemy ORM的包)和psycopg2-binary(SQLAlchemy ORM的PostgreSQL驱动程序)。回到终端并运行以下命令:
pipenv install flask marshmallow sqlalchemy psycopg2-binary
安装Python依赖项后,让创建一个Flask应用。
回到终端,在backend文件夹内创建一个main.py文件,然后添加以下代码,用Flask打个招呼。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
首先从flask包导入Flask类,接下来创建该类的一个实例(__name__参数指的是应用程序模块,所以传递它来告诉flask在哪里找到其他应用程序的文件)。接下来创建一个简单的Python函数,它简单地返回字符串Hello World!。这个函数被@app.route('/')装饰器装饰,它告诉Flask当用户访问/路径或主页URL时,调用这个函数并显示其结果。
要运行这个应用,需要在终端运行以下命令:
pipenv shell
cd backend
export FLASK_APP=main.py
flask run
首先,激活虚拟环境,导航到backend文件夹,然后导出FLASK_APP并运行应用程序服务器(导出FLASK_APP告诉flask运行哪个文件,在例子中,它是main.py文件)。应用程序服务器将在http://127.0.0.1:5000/上运行。如果用Web浏览器访问这个地址,将看到显示的Hello World!。
在前面的步骤中,已经安装了AngularCLI。现在让使用它来创建一个基础的Angular 5应用。回到终端,确保在flask-crm文件夹内,然后运行以下命令来生成前端并提供服务:
ng new frontend
cd frontend
ng serve
应用将在http://localhost:4200/上运行。