新闻详情

新闻详情

首页 / 资讯中心 / 详情

Day 02 | 把开发环境一次搭对:Python+Django+DRF+MySQL+Redis 配置骨架与 TaoToken 接入

发布时间:2026/9/28 4:20:50来源:尧图网络
Day 02 | 把开发环境一次搭对:Python+Django+DRF+MySQL+Redis 配置骨架与 TaoToken 接入
1. 为什么你的 Django 环境总是“我电脑上能跑”如果你正在搜 PythonDjangoDRFMySQLRedis 这套后端环境怎么搭大概率已经踩过下面这些坑MySQL 装完字符集是 latin1存个中文全是问号Redis 装好了Django 里ConnectionError: Error 111 connecting to localhost:6379Python 版本一升级Django 直接报ImportError最要命的是同事拉你代码报错三屏你只能回一句“我电脑上能跑啊”。这套组合本身没问题问题出在“环境不统一”。MySQL 和 Redis 是外部服务版本、字符集、端口、密码任何一项对不上Django 就连不上。所以这篇不讲虚的直接给你一份可复制的依赖清单、docker-compose.yml、settings.py骨架以及逐条验证命令。目标很明确20 分钟内浏览器看到 Django 火箭页面MySQL 和 Redis 都能 ping 通。适合谁看刚学完 Python 基础、准备做第一个 Django API 项目的人被环境问题卡过一下午的人想用 Docker 把数据库锁死、不再污染本机的人。整篇按“先起服务、再连框架、最后接 AI 通道”的顺序走每一步都有验证命令跑不通就停在那一节排查别往下跳。2. 动手前先理清谁管谁装在哪先花两分钟把组件关系搞清楚不然就是盲目复制粘贴。你的电脑是宿主机浏览器访问本地运行的 Django端口 8000Django 再去连 Docker 里的 MySQL3306和 Redis6379。Python 和 Django 跑在本机调试方便、改代码快MySQL 和 Redis 关进容器版本和配置写死在文件里谁拿到都一样。组件作用为什么选它Python 3.11编程语言本体与 Django 4.2 搭配稳定性能比 3.10 有明显提升Django 4.2Web 框架LTS 长期支持版官方维护周期长稳DRF 3.14写 API 的框架Django 生态最成熟的 REST 方案做前后端分离必备MySQL 8.0关系型数据库存商品、订单、用户标准选择Redis 7缓存 会话购物车、验证码、session读写快Docker Compose容器编排一条命令拉起 MySQL Redis不污染本机一句话Python Django 是你写代码的地方MySQL 存数据Redis 加速访问Docker 把这两个外部服务一键搞定。理清这层关系后面配置里每个参数你都知道它在连谁。3. TaoToken 前置统一 Key 与 API 通道怎么接环境搭好后下一步是让 AI 编辑器能帮你写 Django 代码。这里我用 TaoToken 作为统一的模型调用通道官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。它的作用是你申请一个 Key就能通过统一的 API 通道调用模型不用在多个平台之间来回切换配置。接入前先做两件事。第一注册并登录后进入控制台在 API Keys 页面创建一个 Key复制保存好后面配置里要用。第二确认你要用的模型名称模型对话页面能看到当前可用的模型列表。如果你打算长期用 AI 辅助编码、跑 Agent 任务可以看下 Coding Plan 页面按需选择只是临时验证模型能不能通用模型对话就够了。注意Key 只存在服务端或本地.env文件里绝对不要硬编码进settings.py或提交到 Git。这是接入任何 API 通道的第一条纪律。拿到 Key 之后你的 Django 项目里可以把它当成一个普通的 HTTP 服务来调用。下面这节先给环境配置骨架再给 TaoToken 的接入片段顺序别乱环境不通接什么都白搭。4. 可复制配置从 Docker 到 settings.py 骨架4.1 Docker Compose 拉起 MySQL 8.0 Redis 7项目根目录创建docker-compose.yml这是今天最核心的文件services: mysql: image: mysql:8.0 container_name: day02_mysql restart: unless-stopped ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: root123 MYSQL_DATABASE: mall_db MYSQL_USER: mall_user MYSQL_PASSWORD: mall123 TZ: Asia/Shanghai volumes: - mysql_data:/var/lib/mysql command: - --character-set-serverutf8mb4 - --collation-serverutf8mb4_unicode_ci healthcheck: test: [CMD, mysqladmin, ping, -h, localhost] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: day02_redis restart: unless-stopped ports: - 6379:6379 volumes: - redis_data:/data command: redis-server --appendonly yes healthcheck: test: [CMD, redis-cli, ping] interval: 10s timeout: 5s retries: 5 volumes: mysql_data: redis_data:启动并确认状态docker compose up -d docker compose ps两个服务都应该是running (healthy)。如果 MySQL 一直显示starting等 10 到 20 秒健康检查通过后会变 healthy。测试连接docker exec -it day02_mysql mysql -umall_user -pmall123 -e SELECT 1; docker exec -it day02_redis redis-cli ping期望输出分别是1和PONG。看到这两个结果数据库层就通了。4.2 虚拟环境与依赖清单python3 -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install django4.2.* djangorestframework3.14.* \ mysqlclient2.2.* redis5.0.* \ django-cors-headers4.3.* python-dotenv1.0.* pip freeze requirements.txt各包作用django框架本体djangorestframework写 APImysqlclient连 MySQL 的驱动redis操作 Redis 的客户端django-cors-headers解决前后端分离跨域python-dotenv读.env密码不进代码。4.3 settings.py 骨架与 .env创建项目django-admin startproject core .根目录建.envDB_NAMEmall_db DB_USERmall_user DB_PASSWORDmall123 DB_HOST127.0.0.1 DB_PORT3306 REDIS_URLredis://127.0.0.1:6379/0 TAOTOKEN_API_KEY你的Key TAOTOKEN_BASE_URLhttps://taotoken.net/apicore/settings.py里改数据库和缓存import os from dotenv import load_dotenv load_dotenv() DATABASES { default: { ENGINE: django.db.backends.mysql, NAME: os.getenv(DB_NAME), USER: os.getenv(DB_USER), PASSWORD: os.getenv(DB_PASSWORD), HOST: os.getenv(DB_HOST), PORT: os.getenv(DB_PORT), OPTIONS: {charset: utf8mb4}, } } CACHES { default: { BACKEND: django.core.cache.backends.redis.RedisCache, LOCATION: os.getenv(REDIS_URL), } }INSTALLED_APPS加入rest_framework、corsheadersMIDDLEWARE最前面加corsheaders.middleware.CorsMiddleware开发阶段设CORS_ALLOW_ALL_ORIGINS True上线前收紧LANGUAGE_CODE zh-hans、TIME_ZONE Asia/Shanghai。4.4 TaoToken 接入片段在项目里建一个services/ai_client.py用统一通道调用模型import os import requests API_KEY os.getenv(TAOTOKEN_API_KEY) BASE_URL os.getenv(TAOTOKEN_BASE_URL) def chat(prompt: str, model: str 你的模型名) - str: resp requests.post( f{BASE_URL}/v1/chat/completions, headers{Authorization: fBearer {API_KEY}}, json{model: model, messages: [{role: user, content: prompt}]}, timeout60, ) resp.raise_for_status() return resp.json()[choices][0][message][content]这段代码把 Key 从环境变量读进来通过统一 API 通道发请求。模型名以模型对话页面实际列出的为准别照抄占位符。5. 验证请求从 migrate 到 AI 通道跑通5.1 数据库迁移与启动python manage.py migrate python manage.py runserver浏览器打开http://127.0.0.1:8000/看到火箭页面说明 Django 和 MySQL 已经连上了。如果 migrate 报Access denied回去检查.env里的账号密码和docker-compose.yml是否一致。5.2 验证 Redis 缓存进入 shellpython manage.py shellfrom django.core.cache import cache cache.set(k, hello, 30) print(cache.get(k))输出hello说明 Django 已经能读写 Redis。报ConnectionError就检查 Redis 容器是否 healthy、REDIS_URL端口对不对。5.3 验证 TaoToken 通道python -c from services.ai_client import chat; print(chat(用一句话说明 Django 是什么))能打印出模型返回的中文句子说明 Key、Base URL、模型名三者都对上了。如果返回 401检查 Key 是否复制完整返回 404检查 Base URL 和模型名超时就把timeout调大或换网络环境重试。6. 本篇常见错排查MySQL 容器起不来日志报different lower_case_table_names多半是之前用别的配置挂载过同一个数据卷。执行docker compose down -v清掉卷再up -d注意这会删数据开发环境无所谓。migrate 报django.db.utils.OperationalError: (2002)Django 连不到 3306。先docker compose ps确认 MySQL 是 healthy再确认.env里DB_HOST127.0.0.1不是localhost某些系统下 localhost 会走 socket。中文存进去变问号检查docker-compose.yml里的--character-set-serverutf8mb4和settings.py的OPTIONS: {charset: utf8mb4}是否都在。已经建好的库要重建才生效。Redis 报Error 111 connecting to localhost:6379容器没起来或端口没映射。docker exec -it day02_redis redis-cli ping返回 PONG 才算通。TaoToken 返回 401/403Key 没读到或写错。在 shell 里print(os.getenv(TAOTOKEN_API_KEY))确认.env被加载注意load_dotenv()要在读取之前调用。pip 装 mysqlclient 失败Mac 上先brew install mysql-client pkg-configUbuntu 上装default-libmysqlclient-dev build-essential再重试。7. 环境通了之后AI 编码通道这样配环境跑通只是起点。接下来你要用 AI 编辑器写 Django 代码推荐把 TaoToken 的 Key 配进编辑器或项目级规则里。如果你只是验证模型能不能通直接去模型对话页面发一条消息最快如果你要长期用 AI 辅助编码、跑 Agent 任务去 Coding Plan 页面看下适合的方案Key 的创建和管理都在 API Keys 页面接入细节看接入文档。我自己的习惯是.env里放 Key项目根目录放一份 AI 规则文件写明“Django 4.2 DRFModel 字段加 verbose_name配置从 .env 读不硬编码密码”。这样 AI 生成的代码直接符合项目规范省掉反复纠正的功夫。环境一次搭对后面每天省下的都是实打实的时间。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Vulkan快速上手实战:核心概念与踩坑记录 2026/9/28 5:33:49

Vulkan快速上手实战:核心概念与踩坑记录

Vulkan这个名字,圈内人听了都知道分量。它是 Khronos Group 维护的图形与计算 API,2016 年发布至今,基本成了底层 GPU 编程绕不开的话题。它能做什么?一句话概括:它让你直接控制 GPU 的工作方式,从资源分配…

阅读更多 →
SpringBoot+Vue+MySQL物品租赁系统毕设全流程:从数据库设计到部署 2026/9/28 5:33:49

SpringBoot+Vue+MySQL物品租赁系统毕设全流程:从数据库设计到部署

物品租赁系统这个题目,在每年的毕业设计选题里都能见到,而且是那种一眼看去平平无奇、细琢磨却五脏俱全的类型。SpringBoot做后端、Vue做前端、MySQL存数据,这一套组合几乎就是当前Java后端方向课程设计和毕业设计的主流标配。选它的人&#…

阅读更多 →
Jupyter Notebook机器学习案例实战:从数据预处理到模型评估 2026/9/28 5:33:49

Jupyter Notebook机器学习案例实战:从数据预处理到模型评估

简介:基于Jupyter Notebook的机器学习基本模型算法教程,系统讲解从数据预处理到模型调优的完整流程,适合希望通过Python快速上手数据分析与建模的初学者及开发者。内容围绕NumPy、Pandas、Scikit-learn展开,覆盖线性回归、逻辑回归…

阅读更多 →
PSO-CNN回归预测:用粒子群算法自动优化CNN超参数 2026/9/28 5:33:49

PSO-CNN回归预测:用粒子群算法自动优化CNN超参数

简介:基于粒子群算法优化卷积神经网络(PSO-CNN)的Matlab完整源码,面向多变量输入的回归预测任务,支持多输入单输出结构,适合需要自动确定CNN超参数的科研与工程人员,也可用于能源、经济、环境等…

阅读更多 →
从零搭建网站,如何优化网站图片大小才能不卡? 2026/9/28 5:33:49

从零搭建网站,如何优化网站图片大小才能不卡?

从零搭建网站,如何优化网站图片大小才能不卡? 域名解析和服务器配置往往让新手头疼,但这只是冰山一角。真正拖慢打开速度、导致用户流失的,通常是那些未被压缩的海量图片。很多站长花大价钱买了高端服务器,结果网站加载还是像蜗牛一样,问题就出在图片资…

阅读更多 →
Python主观题自动阅卷系统:基于关键词与相似度的实战方案 2026/9/28 5:33:41

Python主观题自动阅卷系统:基于关键词与相似度的实战方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉