第三章 开发环境搭建:Python虚拟环境配置、Django框架安装、PostgreSQL数据库配置、Redis缓存集成
好,咱们直接进入正题。这一章讲的是开发环境搭建,说白了就是给你的风电软件项目「铺路」。我见过太多新手,代码写得挺溜,结果环境配了一周还没跑起来——嗯,这种事我也干过。所以这一章,我会把每一步拆开揉碎了讲,顺便分享一些我踩过的坑。
3.1 Python虚拟环境:为什么必须用?
先问个问题:你电脑上是不是装了好几个Python项目?有的用Django 3.2,有的用4.0,还有的用Flask?如果不做隔离,这些依赖会互相打架。我当年第一个风电项目就吃过这个亏——升级了某个库,结果另一个项目直接崩了。
虚拟环境就是干这个的。它给每个项目一个独立的Python解释器和包管理空间。说白了,就是「各玩各的,互不干扰」。
3.1.1 创建虚拟环境
我个人习惯用 venv,Python 3.3+ 自带,不用额外装。命令很简单:
# 创建虚拟环境,命名为 venv
python -m venv venv
# 激活(Windows)
venv\Scripts\activate
# 激活(macOS/Linux)
source venv/bin/activate
激活后,终端前面会出现 (venv) 字样。这时候你装的所有包,都只在这个环境里生效。
venv。这样 .gitignore 里直接写 venv/ 就能忽略掉,省心。
3.1.2 管理依赖
项目依赖用 requirements.txt 管理。生成和安装命令:
# 导出当前环境的所有包
pip freeze > requirements.txt
# 在新环境里一键安装
pip install -r requirements.txt
我曾经犯过一个错:直接 pip freeze > requirements.txt 把系统级的包也导进去了。结果同事一装,版本冲突到怀疑人生。所以记住:一定要在虚拟环境里操作。
3.2 Django框架安装:选对版本很重要
Django 版本迭代挺快的。风电项目我建议用 LTS(长期支持)版本,比如 4.2.x 或 5.0.x。为什么?因为项目周期长,LTS 版本有 3 年安全更新,不用频繁升级。
# 安装 Django 4.2 LTS
pip install django==4.2.16
# 验证安装
python -m django --version
安装完,创建一个项目:
django-admin startproject windpower_project
cd windpower_project
python manage.py runserver
浏览器打开 http://127.0.0.1:8000,看到小火箭页面,说明 Django 跑起来了。
3.3 PostgreSQL数据库配置:风电数据的「大本营」
风电项目的数据量不小。风速、功率、温度这些时序数据,一天就能攒几百万条。SQLite 肯定扛不住,PostgreSQL 才是正解。
3.3.1 安装与创建数据库
先确保 PostgreSQL 已安装。然后创建数据库和用户:
-- 登录 PostgreSQL
psql -U postgres
-- 创建数据库
CREATE DATABASE windpower_db;
-- 创建用户并授权
CREATE USER winduser WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE windpower_db TO winduser;
3.3.2 Django 连接 PostgreSQL
需要安装 psycopg2 这个驱动:
pip install psycopg2-binary
然后在 Django 的 settings.py 里配置数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'windpower_db',
'USER': 'winduser',
'PASSWORD': 'your_password',
'HOST': 'localhost',
'PORT': '5432',
}
}
配置完,运行迁移测试:
python manage.py migrate
没有报错,说明数据库连上了。
os.getenv('DB_PASSWORD')。记住:永远不要把密码硬编码。
3.4 Redis缓存集成:给系统「提速」
风电系统里,有些数据查询频率极高,比如实时风速、设备状态。每次都查数据库,数据库会累死。Redis 就是用来扛这些高频读写的。
3.4.1 安装 Redis 与 Python 客户端
先确保 Redis 服务已启动。然后安装 django-redis:
pip install django-redis
在 settings.py 里配置缓存:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
这里 /1 表示使用 Redis 的 1 号数据库,避免和别的项目冲突。
3.4.2 在代码里用缓存
举个实际例子:查询某台风机的实时功率。如果每次都查数据库,压力很大。用缓存后,数据先存 Redis,下次直接读内存:
from django.core.cache import cache
def get_turbine_power(turbine_id):
# 先从缓存取
power = cache.get(f'turbine_power_{turbine_id}')
if power is not None:
return power
# 缓存没有,查数据库
power = Turbine.objects.get(id=turbine_id).power
# 写入缓存,有效期 60 秒
cache.set(f'turbine_power_{turbine_id}', power, 60)
return power
你看,代码逻辑很简单。但效果很明显——数据库查询次数能减少 80% 以上。
3.5 整体架构图:看看它们怎么配合
下面这张图,展示了 Django、PostgreSQL、Redis 三者的关系。我画了个简单的 SVG,方便你理解:
这张图你看懂了吗?用户请求先到 Django,Django 根据需求决定:是去 PostgreSQL 查历史数据,还是去 Redis 读实时缓存。三者各司其职,系统才能跑得稳、跑得快。
3.6 环境验证:跑通才算完
配置完别急着写代码。先跑个简单的验证脚本,确保所有组件都通了:
# 验证 Django
python manage.py check
# 验证数据库连接
python manage.py dbshell
# 验证 Redis
redis-cli ping # 返回 PONG 说明 Redis 正常
如果都通过了,恭喜你,开发环境搭建完成。这一步虽然枯燥,但基础打牢了,后面写代码才顺手。
公众号:蓝海资料掘金营,微信deep3321