Flask 项目与 GitHub:从零到进阶的完整指南
引言:当轻量级框架遇上协作利器
在现代 Web 开发中,构建功能丰富的应用和进行高效的团队协作同等重要。Python 的 Flask 框架以其轻量、灵活的特性,成为许多开发者构建 Web 应用的首选。而 GitHub,作为全球领先的基于 Git 的代码托管平台,则为项目的版本控制、协作开发、代码分享和开源社区贡献提供了强大的支持。
将 Flask 项目与 GitHub 结合,意味着你的 Web 应用开发将获得强大的版本管理能力、便捷的团队协作流程以及面向世界的展示平台。无论是个人项目用于学习和展示,还是团队开发用于协同工作和持续集成,掌握 Flask 与 GitHub 的联动是现代 Web 开发者的必备技能。
本文将带你从零开始,详细了解如何将你的 Flask 项目与 GitHub 无缝对接。我们将从基础概念讲起,逐步深入到实际操作,并探讨一些高级技巧和最佳实践,帮助你更有效地管理你的 Flask 项目。
第一部分:基础概念速览
在深入实践之前,我们先快速回顾一下本文涉及的两个核心元素:Flask 和 Git/GitHub。
1. Flask:Python 的微框架
Flask 是一个用 Python 编写的微型 Web 框架。所谓“微”,不是指功能少,而是指它核心简洁,只保留了 Web 开发最基本的功能(如请求处理、路由),而将许多高级功能(如数据库 ORM、表单验证、用户认证等)设计为可插拔的扩展。这使得 Flask 具有高度的灵活性,开发者可以根据项目需求自由选择和组合各种扩展。
一个最简单的 Flask 应用只需几行代码:
“`python
from flask import Flask
app = Flask(name)
@app.route(‘/’)
def hello_world():
return ‘Hello, Flask!’
if name == ‘main‘:
app.run(debug=True)
“`
这个简单的应用定义了一个路由 /
,当访问首页时返回 “Hello, Flask!”。
2. Git 与 GitHub:版本控制与协作平台
Git 是一个分布式版本控制系统,由 Linux 之父 Linus Torvalds 创建。它的核心功能是追踪文件的历史变化,允许你在任何时候回溯到项目的某个特定状态,记录每次修改,并在多人协作时处理代码合并。Git 的强大之处在于其分布式特性,每个开发者电脑上都保存着完整的项目历史,即使没有网络也能进行大部分操作。
GitHub 是一个基于 Git 的代码托管平台。它提供了一个 Web 界面,让你方便地创建、管理 Git 仓库,并提供了许多基于仓库的协作功能,如:
- 代码托管: 在云端安全存储你的 Git 仓库。
- Pull Request (拉取请求): 提供一个流程,让团队成员提交代码修改,进行代码审查和讨论,最终合并到主分支。
- Issues (问题追踪): 用于记录 Bug、任务、功能请求等。
- Wiki: 提供项目文档编写区域。
- GitHub Actions: 强大的 CI/CD 工具,用于自动化工作流程(如代码检查、测试、部署)。
- 项目主页: 方便地展示你的项目。
将 Flask 项目放到 GitHub 上,就是利用 Git 进行本地版本控制,再利用 GitHub 进行远程托管和在线协作。
第二部分:为 Flask 项目引入 Git 版本控制
在将项目推送到 GitHub 之前,第一步是为你的 Flask 项目初始化一个本地 Git 仓库。
1. 安装 Git
首先确保你的系统上安装了 Git。你可以在终端或命令行中输入 git --version
来检查。如果没有安装,请访问 https://git-scm.com/downloads 下载并安装对应你操作系统的版本。
安装完成后,建议进行一些基本配置:
bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
这将设置你提交代码时的身份信息。
2. 初始化 Git 仓库
进入你的 Flask 项目的根目录。假设你的项目文件夹叫 my-flask-app
:
bash
cd my-flask-app
然后执行 Git 初始化命令:
bash
git init
这会在你的项目根目录中创建一个名为 .git
的隐藏文件夹。这个文件夹包含了 Git 仓库的所有信息,但你通常不需要直接操作它。此时,你的项目目录已经成为一个本地 Git 仓库。
3. 理解工作区、暂存区和提交
Git 的工作流程通常涉及三个区域:
- 工作区 (Working Directory): 你能看到的项目文件目录,你在其中进行修改。
- 暂存区 (Staging Area/Index): 一个用于准备下一次提交的区域。你可以将工作区中修改的文件添加到暂存区,选择性地包含某些修改。
- 本地仓库 (Local Repository): 存放着你提交的所有版本历史。每次提交 (commit) 都会在本地仓库中创建一个新的快照。
基本操作流程:
- 在 工作区 修改文件。
- 使用
git add <文件名>
或git add .
将修改的文件添加到 暂存区。 - 使用
git commit -m "提交信息"
将暂存区的内容提交到 本地仓库,形成一个新的版本历史。
4. 第一次提交
在初始化仓库后,项目中的所有文件都处于“未跟踪”状态。你可以使用 git status
查看文件状态。
bash
git status
你会看到类似这样的输出:
“`
Untracked files:
(use “git add
app.py
requirements.txt
# 可能还有其他项目文件,如 templates/, static/, config.py 等
“`
接下来,将所有需要进行版本控制的文件添加到暂存区:
bash
git add .
.
表示当前目录下的所有文件(包括子目录)。如果你只想添加特定文件,可以指定文件名。
再次使用 git status
,你会看到文件已经从“未跟踪”变为“待提交”:
bash
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: app.py
new file: requirements.txt
# ...
最后,执行提交操作:
bash
git commit -m "Initial commit: setup basic Flask app"
-m
后面是本次提交的简短描述信息,应清晰地说明本次提交做了什么。
现在,你的 Flask 项目的初始状态已经被记录在本地 Git 仓库中了。
第三部分:将本地 Flask 项目推送到 GitHub
有了本地 Git 仓库后,下一步是将其关联到一个 GitHub 仓库并推送到云端。
1. 在 GitHub 上创建新仓库
访问 github.com 并登录你的账号。
点击页面右上角的 ‘+’ 号,选择 “New repository”。
在创建页面填写:
- Repository name: 给你的仓库起个名字,比如
my-flask-app
。 - Description (Optional): 简单描述你的项目。
- Public or Private: 选择仓库是公开还是私有。学习或开源项目通常选 Public,内部或私有项目选 Private。
- Initialize this repository with: 注意: 如果你已经按照上一节在本地
git init
了,不要勾选 “Add a README file”, “Add .gitignore”, 或 “Choose a license”。这些文件可以在本地创建并一起提交。勾选这些选项会在远程仓库创建文件,可能导致后续推送时发生冲突。如果你的本地仓库是空的(没有执行git init
),或者你希望 GitHub 帮你创建这些初始文件,则可以勾选。但在本文的流程中,我们假设你先在本地git init
。
点击 “Create repository”。
创建成功后,GitHub 会显示一个页面,其中包含了将现有本地仓库推送到这个新创建的远程仓库的命令行指令。它通常会给你两组选项,选择“…or push an existing repository from the command line”那组。
2. 关联本地仓库与远程仓库
回到你的本地项目目录,在终端中执行 GitHub 页面上提供的命令。它们通常是:
“`bash
将本地 main 分支重命名为 main (可选,但建议统一)
git branch -M main
关联远程仓库 (origin 是远程仓库的别名,url 是你刚创建的 GitHub 仓库地址)
git remote add origin https://github.com/你的用户名/my-flask-app.git
推送本地 main 分支到远程 origin,并设置上游分支
git push -u origin main
“`
解释一下这些命令:
git branch -M main
: 将当前分支(通常是master
或main
)重命名为main
。main
现在是 GitHub 推荐的默认主分支名称。如果你的分支已经是main
,这步可以省略。git remote add origin <repository_url>
: 将名为origin
的远程仓库添加到你的本地仓库配置中。origin
是一个惯用的别名,指向你的 GitHub 仓库 URL。这样以后你就可以用origin
代替冗长的 URL 了。git push -u origin main
: 将本地main
分支的提交推送到名为origin
的远程仓库的main
分支。-u
参数(或--set-upstream
)会将本地的main
分支与远程的origin/main
分支关联起来,这样以后你就可以直接使用git push
和git pull
命令,而无需指定远程仓库和分支名。
执行 git push -u origin main
后,如果这是你第一次连接 GitHub,Git 可能会要求你输入 GitHub 用户名和密码,或者使用 personal access token。如果使用双重认证,你需要配置 Git 使用 token 进行身份验证。
推送成功后,刷新你的 GitHub 仓库页面,你就能看到你的 Flask 项目文件已经出现在上面了。
第四部分:Flask 项目特有的 Git 使用技巧与最佳实践
将 Flask 项目置于 Git 控制下有一些需要特别注意的地方,尤其是关于哪些文件应该被跟踪,哪些不应该。
1. 使用 .gitignore
忽略不需要跟踪的文件
不是项目目录下的所有文件都需要或应该被 Git 跟踪。有些文件是临时生成的、包含敏感信息,或者只与你的本地开发环境相关。将这些文件添加到 .gitignore
文件中,Git 就会忽略它们,不会将它们的修改计入版本历史。
对于 Flask 项目,常见的需要忽略的文件和目录包括:
- Python 虚拟环境目录: 你通常会在项目根目录或其附近创建虚拟环境(如
.venv
或venv
)。虚拟环境包含 Python 解释器和项目依赖库的副本,这些是可以在其他环境中重新创建的,不应纳入版本控制。 __pycache__
目录: Python 生成的字节码缓存文件。.pytest_cache
等测试缓存目录: 测试框架生成的缓存。- 编辑器或 IDE 配置文件: 如
.vscode/
,.idea/
等,这些是个人或特定工具的配置,不应共享。 - 敏感信息文件: 如
.env
文件(如果用来存储环境变量,特别是数据库连接字符串、API 密钥等)。绝不能将包含敏感凭据的文件提交到 Git 仓库,尤其是公共仓库。 - 数据库文件: 如果你使用 SQLite 并且数据库文件放在项目目录中(例如
instance/app.db
),这个文件通常也不应该被版本控制,因为它包含了应用的状态数据,而不是代码本身。创建数据库的脚本或迁移文件才应该被跟踪。 - 上传的文件: 如果你的应用允许用户上传文件到项目目录的某个子目录,这个目录也不应该被跟踪。
- 日志文件: 应用运行日志通常不需要版本控制。
在你的 Flask 项目根目录创建一个名为 .gitignore
的文件(注意开头的点):
bash
touch .gitignore
然后编辑该文件,添加需要忽略的模式。以下是一个适用于大多数 Python/Flask 项目的 .gitignore
示例:
“`gitignore
Python
pycache/
.pyc
.pyo
.pyd
.Python
Python/
Virtual Environment
.venv/
venv/
env/
Env/
Editor/IDE
.vscode/
.idea/
*.swp # vim temporary files
Sensitive files (Environment variables, etc.)
.env
*.env
Instance folder (often contains config and SQLite db)
instance/
Database files (if SQLite is used and stored in project root)
*.db
Uploaded files
/path/to/your/upload/folder/ # Replace with your actual upload directory
Logs
*.log
logs/
pip freeze output (if not needed in repo, though requirements.txt is)
requirements.txt # <– Uncomment if you don’t want to version requirements.txt
Flask specific (if using default instance folder)
instance/ # Already covered above
“`
重要: 在你进行第一次 git add .
和 git commit
之前创建并配置 .gitignore
是最好的做法。如果你不小心提交了本应忽略的文件,你需要使用 git rm --cached <文件名>
将其从暂存区和 Git 跟踪中移除,然后提交,并确保它在 .gitignore
中。
2. 使用虚拟环境并管理依赖
在开发 Flask 应用时,强烈推荐使用虚拟环境。虚拟环境可以隔离不同项目所需的 Python 库,避免版本冲突。常用的虚拟环境工具是 Python 内置的 venv
或第三方库 virtualenv
。
使用 venv
:
“`bash
在项目根目录创建虚拟环境
python -m venv .venv
激活虚拟环境 (Linux/macOS)
source .venv/bin/activate
激活虚拟环境 (Windows)
.venv\Scripts\activate
在激活的虚拟环境中安装项目依赖
pip install Flask # 安装 Flask
pip install -r requirements.txt # 如果已有依赖文件
… 开发你的应用 …
将当前环境中安装的所有库及其版本导出到 requirements.txt 文件
pip freeze > requirements.txt
退出虚拟环境
deactivate
“`
requirements.txt
文件非常重要,它记录了你的项目运行所需的所有库及其精确版本。这个文件必须被 Git 跟踪并提交到 GitHub。当其他开发者克隆你的仓库或部署你的应用时,他们只需要激活虚拟环境并运行 pip install -r requirements.txt
就能安装所有必要的依赖,确保环境的一致性。
确保你的 .gitignore
文件包含了你的虚拟环境目录(如 .venv/
),但不包含 requirements.txt
。
3. 提交的频率和信息
勤快地提交代码是一个好习惯。每次完成一个小的功能、修复一个 bug 或完成一个逻辑单元后,就进行一次提交。提交信息应该清晰、简洁,描述本次提交做了什么。这有助于你和你的团队成员理解项目历史,方便回溯和查找问题。
示例提交信息:
feat: Implement user registration form
(添加用户注册表单功能)fix: Correct database connection error
(修复数据库连接错误)refactor: Improve database query performance
(优化数据库查询性能)docs: Update README with installation instructions
(更新 README 文件,添加安装说明)chore: Add .gitignore file
(添加 .gitignore 文件)
第五部分:利用 GitHub 的协作功能
GitHub 不仅仅是一个代码存储的地方,它更是进行团队协作和项目管理的强大平台。
1. 分支 (Branches)
分支是 Git 的核心功能之一,它允许你在不影响项目主线开发的情况下,并行地进行新功能开发、bug 修复或实验性尝试。
- 主分支: 通常是
main
或master
分支,代表项目的稳定版本或随时可以部署的版本。 - 开发分支: 可以有一个
develop
分支用于集成各个功能的最新开发成果。 - 功能分支 (Feature Branches): 为每个新功能创建一个独立的分支,例如
feature/user-auth
或feature/profile-page
。 - Bug 修复分支 (Bugfix Branches): 为修复 Bug 创建分支,例如
bugfix/login-error
。 - 发布分支 (Release Branches): 准备发布新版本时创建的分支。
常用分支命令:
git branch
: 查看本地分支列表。git branch <branch-name>
: 创建新分支。git checkout <branch-name>
: 切换到指定分支。git checkout -b <new-branch-name>
: 创建并切换到新分支。git merge <branch-to-merge>
: 将指定分支的更改合并到当前分支。git branch -d <branch-name>
: 删除本地已合并的分支。git push origin <branch-name>
: 将本地分支推送到远程仓库。git push origin --delete <branch-name>
: 删除远程仓库的分支。
工作流程示例:
- 确保你在主分支 (
main
) 上,并且是最新的:git checkout main
->git pull origin main
- 创建一个新功能分支:
git checkout -b feature/add-api-endpoint
- 在新分支上进行开发,提交代码。
- 将新分支推送到 GitHub:
git push origin feature/add-api-endpoint
- 在 GitHub 上创建 Pull Request (PR)。
2. 拉取请求 (Pull Requests / Merge Requests)
Pull Request (PR) 是 GitHub 上进行代码集成和审查的核心机制。当你在一个分支上完成了工作并希望将其合并到另一个分支(比如从 feature/add-api-endpoint
合并到 main
或 develop
)时,你会创建一个 PR。
PR 的作用:
- 代码审查: 团队成员可以在 PR 页面上查看你提交的所有修改,逐行评论,提出建议或发现潜在问题。
- 讨论: 可以在 PR 页面进行关于这些修改的讨论。
- 持续集成触发: 可以配置 GitHub Actions 等工具,在创建 PR 时自动运行测试,确保代码质量。
- 状态跟踪: PR 页面会显示所有关联的提交、通过的检查项(如测试),以及合并状态。
PR 工作流程:
- 在你的功能分支上完成开发并提交。
- 将功能分支推送到 GitHub (
git push origin <your-branch-name>
)。 - 访问你的 GitHub 仓库页面,GitHub 通常会提示你创建一个针对刚推送分支的 PR。或者你可以点击 “Pull requests” 标签页,然后点击 “New pull request” 按钮。
- 选择要合并的源分支(你的功能分支)和目标分支(通常是
main
或develop
)。 - 填写 PR 的标题和描述,清晰说明本次 PR 的目的和内容。可以关联 Issues。
- 提交 PR。
- 其他团队成员(或你自己,如果是个人项目)进行代码审查。
- 根据审查意见进行修改(直接在原功能分支上提交并推送到 GitHub,PR 会自动更新)。
- 当所有讨论完成,审查通过,并且所有检查项(如自动测试)都通过后,可以将 PR 合并 (Merge) 到目标分支。
- 合并后,可以删除不再需要的功能分支(在 GitHub 页面或通过
git branch -d
命令)。
对于个人项目,你也可以给自己创建 PR,这有助于你在合并前回顾自己的代码,并利用 GitHub Actions 进行自动化检查。
3. 问题追踪 (Issues)
GitHub Issues 是一个简单的任务管理系统。你可以用它来:
- 报告 Bug。
- 提出新功能需求。
- 记录待办事项或改进点。
- 进行项目讨论。
你可以在 Issues 中创建标签(Labels)来分类(如 bug
, enhancement
, question
, todo
),分配给团队成员(Assignees),设置里程碑(Milestones)。
在提交代码时,你可以在提交信息中引用相关的 Issue 号(例如 git commit -m "fix: resolve login error #123"
)。在 PR 中,你也可以链接到相关的 Issues。这有助于将代码修改与项目任务关联起来。
4. README.md:项目的第一印象
一个好的 README.md
文件是项目在 GitHub 上的门面。它应该清晰地说明项目是什么、如何安装、如何运行、如何使用以及如何参与贡献等信息。使用 Markdown 格式编写。
对于 Flask 项目,README.md
通常包含:
- 项目名称和简要描述。
- 安装指南(如何克隆仓库、安装依赖
pip install -r requirements.txt
、激活虚拟环境)。 - 如何运行应用。
- 应用的主要功能介绍。
- 项目的结构说明。
- 联系方式或贡献指南。
- 许可证信息。
创建一个详细且易于理解的 README.md
能极大地提升项目的可用性和吸引力。
第六部分:进阶技巧与自动化
一旦你熟悉了基础流程,可以探索一些更高级的技巧来提高效率和代码质量。
1. 编写一个更完善的 .gitignore
随着项目的发展,你可能会发现更多需要添加到 .gitignore
的文件或模式。定期检查你的项目目录,看看是否有不应该被版本控制的文件被 Git 跟踪了,并相应更新 .gitignore
。
你也可以在创建新仓库时,利用 GitHub 提供的 .gitignore
模板。创建仓库时,选择 “Add .gitignore” 并搜索 “Python”,GitHub 会生成一个包含常见 Python 项目忽略项的 .gitignore
文件。你可以基于此进行修改。
2. 使用 GitHub Actions 实现 CI/CD
GitHub Actions 是 GitHub 的集成 CI/CD (持续集成/持续部署) 服务。你可以创建自动化工作流程,例如:
- 在每次 Push 或 Pull Request 时运行测试: 确保新的代码修改没有引入 Bug。
- 检查代码风格: 使用 linters (如 Flake8, Black) 检查代码是否符合规范。
- 构建 Docker 镜像: 如果你的应用使用 Docker 部署。
- 自动部署: 在代码合并到主分支后,自动将应用部署到生产服务器。
要使用 GitHub Actions,你在项目根目录创建一个 .github/workflows
目录,并在其中放置 YAML 文件定义你的工作流程。
一个简单的 Flask 项目测试工作流程示例 (.github/workflows/test.yml
):
“`yaml
name: Python Tests
on:
push:
branches: [ main, develop ] # 在 main 和 develop 分支 push 时触发
pull_request:
branches: [ main, develop ] # 在针对 main 和 develop 创建 PR 时触发
jobs:
build:
runs-on: ubuntu-latest # 在 Ubuntu 环境中运行
steps:
- uses: actions/checkout@v4 # 检出代码
- name: Set up Python 3.9 # 设置 Python 版本
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install dependencies # 安装依赖
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
# 如果有测试相关的依赖,也在此安装
pip install pytest Flask pytest-flask
- name: Run tests # 运行测试
run: |
# 这里是运行你的测试命令,例如 pytest 或 nose2
pytest
“`
这个文件定义了一个名为 “Python Tests” 的工作流程,它会在 main
或 develop
分支有新的 Push 或 PR 时触发。它会在 Ubuntu 环境下设置 Python 3.9,安装依赖,然后运行 pytest
测试。你可以在 GitHub 仓库的 “Actions” 标签页中看到工作流程的执行状态。
3. 安全处理敏感信息
再次强调,绝不能将 API 密钥、数据库密码等敏感信息直接写在代码中并提交到 Git 仓库。
推荐的做法是使用环境变量。在本地开发时,你可以使用 python-dotenv
这样的库从 .env
文件加载环境变量。
- 安装
python-dotenv
:pip install python-dotenv
- 在项目根目录创建
.env
文件(并确保它在.gitignore
中)。
env
DATABASE_URL=postgresql://user:password@host:port/dbname
SECRET_KEY=your_super_secret_key_for_flask -
在你的 Flask 应用中加载环境变量:
“`python
from dotenv import load_dotenv
import osload_dotenv() # 加载 .env 文件中的环境变量
在代码中通过 os.getenv() 获取
app.config[‘SECRET_KEY’] = os.getenv(‘SECRET_KEY’)
db_url = os.getenv(‘DATABASE_URL’)… 使用 db_url 连接数据库
``
.env` 文件。GitHub 也提供了 Secrets 功能,可以在 GitHub Actions 中安全地存储和使用敏感信息。
4. 在部署到生产环境时(如 Heroku, Render, AWS, Azure 等),通过平台的配置界面设置这些环境变量,而不是依赖
4. 使用 GitHub Pages 展示项目文档或静态网站
如果你的 Flask 项目有配套的静态文档(比如使用 Sphinx 生成)或者你只是想为项目创建一个简单的静态介绍页面,可以利用 GitHub Pages 功能。GitHub Pages 可以直接托管 Git 仓库中的静态 HTML、CSS、JS 文件,并提供一个 github.io
或自定义域名访问。
第七部分:常见问题与故障排除
在实践过程中,你可能会遇到一些问题:
- 不小心提交了敏感文件或
.venv
目录怎么办?- 使用
git rm --cached <文件名>
将文件从 Git 跟踪中移除(文件本身还在)。 - 使用
git commit --amend
修改上一次提交(如果这是最后一次提交),或者使用git rebase -i
或git filter-branch
删除历史提交中的文件(此操作较复杂且危险,特别是公共仓库,谨慎使用)。 - 确保将该文件或目录添加到
.gitignore
。 - 如果敏感信息(如密码、密钥)已经被提交到公共仓库,必须立即更改这些凭据!
- 使用
- 合并代码时发生冲突 (Merge Conflicts)。
- 冲突发生在 Git 无法自动合并同一个文件的不同版本时。
- Git 会在文件中标记冲突的部分(用
<<<<<<<
,=======
,>>>>>>>
表示)。 - 手动编辑文件,解决冲突,选择保留哪些代码。
git add <解决冲突的文件>
将解决后的文件添加到暂存区。git commit
提交解决冲突的结果。
git push
提示权限不足。- 确保你使用了正确的 GitHub 账号和凭据。
- 如果是 HTTPS 方式,检查保存的密码或 Token 是否正确。
- 如果是 SSH 方式,确保你的 SSH Key 已添加到 GitHub 账号中。
pip install -r requirements.txt
失败。- 确保你已经激活了虚拟环境。
- 检查
requirements.txt
文件是否存在且路径正确。 - 检查网络连接,或者是否有国内镜像源问题(考虑配置 pip 镜像)。
- 依赖之间可能存在冲突,尝试升级 pip,或者检查特定库的版本要求。
- GitHub Actions 工作流程失败。
- 查看 GitHub Actions 页面中失败工作流程的详细日志,通常能找到具体的错误信息。
- 检查
.github/workflows
YAML 文件语法是否正确。 - 确保你的测试代码或脚本在 GitHub Actions 环境下能够正确运行。
结论
将 Flask 项目与 GitHub 集成是现代 Web 开发的标准流程。通过 Git 进行强大的本地版本控制,借助 GitHub 实现安全的代码托管、高效的团队协作、便捷的代码审查和展示,并利用 GitHub Actions 自动化构建和测试流程,你的 Flask 项目将变得更加健壮、易于维护和协作。
本文从基础的 Git 初始化、GitHub 仓库创建讲起,详细介绍了 .gitignore
、虚拟环境、requirements.txt
等 Flask 项目特有的最佳实践,并探讨了分支、Pull Request、Issues、README 等协作功能,最后触及了 GitHub Actions 等自动化技巧。
现在,你已经掌握了将你的 Flask 应用从本地开发环境带到云端协作平台的关键步骤和重要技巧。开始你的实践吧,将你的下一个 Flask 项目托管到 GitHub,体验版本控制和协作带来的便利和效率提升!不断探索 GitHub 的其他功能,如项目看板、Wiki 等,它们都能帮助你更好地管理你的项目。祝你在 Flask 与 GitHub 的结合之路上越走越远!