update task00 doc and remove python version check in pipenv

This commit is contained in:
Tomo Wang 2021-04-19 23:58:18 +08:00
parent 81f52d501d
commit 07a21bb6d7
9 changed files with 86 additions and 52 deletions

View File

@ -28,21 +28,54 @@ BlueWhale设计课程是datawhale项目开发团队基于datawhale社区成
- 组队、修改群昵称
- 熟悉打卡规则
- 熟悉REST风格系统
- 熟悉OpenAPI规范
- 了解Django框架
- 了解Vue.js框架
- 独立完成数据库安装
- 独立完成代码运营
- 初步了解代码结构
### Task01加入开发项目组和搭建编码环境2天
-
### Task02熟悉datawhale需求和技术架构2天
-
### Task03认领datawhale任务和设计编码7天
-
### Task04前后端对接联调和单元测试2天
-
### Task05datawhale迭代测试和发布1天
-
### Task01熟悉后端代码结构及OpenAPI文档编写2天
- 后端代码目录结构
- 后端RESTful API URL定义
- 查看已实现的接口及内容
- 使用[swagger-editor](https://github.com/swagger-api/swagger-editor)编辑接口文档并补充遗漏的接口
### Task02熟悉datawhale需求及编写新API文档2天
- 熟悉用户及权限管理需求
- 设计用户及权限管理相关RESTful API
- 补充[openapi.yaml](./openapi.yaml)并添加用户及权限管理相关入口
- 熟悉赛事管理需求
- 设计赛事管理相关RESTful API
- 补充[openapi.yaml](./openapi.yaml)并添加赛事管理相关入口
### Task03熟悉首页需求并使用Vue实现首页功能2天
- 前端代码目录结构
- `vue-router`简介
- `vuex`状态管理
- 熟悉`vuetify` material design组件库并使用
- 基于交互图实现首页功能
### Task04开发用户管理后端及前端4天
- [后端]修改已有Model并添加用户属性
- [后端]实现对应序列化类及View
- [后端]创建URL与View的映射
- [前端]创建用户列表页及用户详情页
- [前端]创建用户列表路由及用户详情路由
- 线上环境部署及集成测试
### Task04开发赛事管理后端及前端4天
- [后端]修改已有Model并添加用户属性
- [后端]实现对应序列化类及View
- [后端]创建URL与View的映射
- [前端]创建用户列表页及用户详情页
- [前端]创建用户列表路由及用户详情路由
- 线上环境部署及集成测试
#### 参与贡献

View File

@ -13,6 +13,3 @@ itsdangerous = "*"
[dev-packages]
pycodestyle = "*"
[requires]
python_version = "3.8"

32
bluewhale/Pipfile.lock generated
View File

@ -1,12 +1,10 @@
{
"_meta": {
"hash": {
"sha256": "d2b8551f45b46a39a398a37c34d445febfb8f5c0a693600b0f53e2baf8d55454"
"sha256": "a96628ee8ece0c3f5f8c44fb748f5c11e7fbe3445163718c4c928cf0705717b9"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.8"
},
"requires": {},
"sources": [
{
"name": "pypi",
@ -18,19 +16,19 @@
"default": {
"asgiref": {
"hashes": [
"sha256:5ee950735509d04eb673bd7f7120f8fa1c9e2df495394992c73234d526907e17",
"sha256:7162a3cb30ab0609f1a4c95938fd73e8604f63bdba516a7f7d64b83ff09478f0"
"sha256:92906c611ce6c967347bbfea733f13d6313901d54dcca88195eaeb52b2a8e8ee",
"sha256:d1216dfbdfb63826470995d31caed36225dcaf34f182e0fa257a4dd9e86f1b78"
],
"markers": "python_version >= '3.5'",
"version": "==3.3.1"
"markers": "python_version >= '3.6'",
"version": "==3.3.4"
},
"django": {
"hashes": [
"sha256:169e2e7b4839a7910b393eec127fd7cbae62e80fa55f89c6510426abf673fe5f",
"sha256:c6c0462b8b361f8691171af1fb87eceb4442da28477e12200c40420176206ba7"
"sha256:0604e84c4fb698a5e53e5857b5aea945b2f19a18f25f10b8748dbdf935788927",
"sha256:21f0f9643722675976004eb683c55d33c05486f94506672df3d6a141546f389d"
],
"index": "pypi",
"version": "==3.1.6"
"version": "==3.2"
},
"django-rest-auth": {
"hashes": [
@ -41,11 +39,11 @@
},
"djangorestframework": {
"hashes": [
"sha256:0209bafcb7b5010fdfec784034f059d512256424de2a0f084cb82b096d6dd6a7",
"sha256:0898182b4737a7b584a2c73735d89816343369f259fea932d90dc78e35d8ac33"
"sha256:6d1d59f623a5ad0509fe0d6bfe93cbdfe17b8116ebc8eda86d45f6e16e819aaf",
"sha256:f747949a8ddac876e879190df194b925c177cdeb725a099db1460872f7c0a7f2"
],
"index": "pypi",
"version": "==3.12.2"
"version": "==3.12.4"
},
"itsdangerous": {
"hashes": [
@ -98,11 +96,11 @@
"develop": {
"pycodestyle": {
"hashes": [
"sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367",
"sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"
"sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068",
"sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"
],
"index": "pypi",
"version": "==2.6.0"
"version": "==2.7.0"
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
images/task00-mysql.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 99 KiB

View File

@ -1,5 +1,5 @@
本期任务将简介在课程中涉及的各概念、工具及框架。最终通过[环境搭建](#环境搭建)您将能搭建基础的用于开发的环境
并成功运行示例代码本期任务假设你已了解数据库、Python、HTTP、HTML、CSS、JavaScript等知识
并成功运行示例代码本期任务假设你已了解数据库、Python、HTTP、HTML、CSS、JavaScript、git等知识)。
# REST简介
@ -128,27 +128,32 @@ var app = new Vue({
# 环境搭建
组队完成后由队长创建Github新的组织并将团队成员加至组织然后将代码fork至组织仓库。
团队成员clone fork后的仓库请替换自己的组织名称
`git clone git@github.com:whale-web-team00/whale-web.git`
## 数据库
本课程将使用[MariaDB](https://mariadb.org/)作为数据库MariaDB是MySQL的分支
本课程将使用[MySQL](https://www.mysql.com/)作为数据库
### 安装数据库
如果你系统中已安装MySQL或MariaDB数据库,可跳过该步骤)
如果你系统中已安装MySQL数据库可跳过该步骤
* Mac (具体步骤请参考[官方博客](https://mariadb.com/resources/blog/installing-mariadb-10-1-16-on-mac-os-x-with-homebrew/))
- 安装:`brew install mariadb`前置条件为系统中已经安装brew工具
- 初始化基础数据库:`mysql_install_db`
- 启动数据库服务:`brew services start mariadb`
- 初始化安全选项:`mariadb-secure-installation`
* Windows: 从官网下载安装包并安装[https://mariadb.org/download/](https://mariadb.org/download/)
* Linux
- Ububtu/Debian: `sudo apt install mariadb-server`
- CentOS/Redhat: `sudo yum install MariaDB-server MariaDB-client`
* Mac (图形界面)
- 从官网下载DMG安装包[https://dev.mysql.com/downloads/mysql/](https://dev.mysql.com/downloads/mysql/)
- 双击并按提示安装
- 安装完成后在系统设置最后能够找到MySQL的服务如下所示
![system preferences - mysql](./images/task00-mysql.png)
## 初始化数据库
* Windows:
- 从官网下载MySQL Install for Windows安装包[https://dev.mysql.com/downloads/mysql/](https://dev.mysql.com/downloads/mysql/)
- 双击并按提示安装
通过root用户连接数据库`mariadb -u root -p`在SQL终端运行下列SQL语句
### 初始化数据库
通过root用户连接数据库`/usr/local/mysql/bin/mysql -u root -p`在SQL终端运行下列SQL语句
```sql
-- 创建bluewhale用户
@ -164,24 +169,25 @@ GRANT ALL PRIVILEGES ON bluewhale.* TO 'bluewhale'@'localhost';
FLUSH PRIVILEGES;
```
断开连接后,使用新用户连接新数据库`mariadb -u bluewhale -p bluewhale`,你将看到连接成功的信息:
断开连接后,使用新用户连接新数据库`/usr/local/mysql/bin/mysql -u bluewhale -p bluewhale`,你将看到连接成功的信息:
![mariadb connect success info](./images/task00-mariadb-connect.png)
![mysql connect success info](./images/task00-mysql-connect.png)
## 后端服务
本课程使用Python作为后端开发语言使用Django作为后端框架使用[pipenv](https://github.com/pypa/pipenv)
作为Python的依赖管理工具。
* 安装Python3.8如已有Python3.8环境可跳过此步骤如有其他版本可以使用Conda进行安装管理参见
[Conda文档](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html)
* 安装pipenv: `pip install --user pipenv`
* 安装Python3.8如已有Python3.8环境,可跳过此步骤
* 安装pipenv: `pip install pipenv`
* 安装Python依赖包
- 进入子目录: `cd <ROOT REPO FOLDER>/bluewhale`
- 进入clone下来的项目目录进入子目录: `cd bluewhale`
- 同步依赖包: `pipenv sync`
* 初始化数据表并创建初始用户:
- 激活virtualenv: `pipenv shell` (如果已经在conda或其他virtualenv环境中需要先deactivate)
- 初始化数据表:`python manage.py migrate`
![db migrate](./images/task00-db-migrate.png)
- 初始化超级管理员用户:`python manage.py createsuperuser`
* 启动后端服务:`python manage.py runserver`
@ -198,7 +204,7 @@ FLUSH PRIVILEGES;
* 安装Node.js 版本14 [https://nodejs.org/en/download/](https://nodejs.org/en/download/)。
如已安装其他版本Node.js可以使用[nvm](https://github.com/nvm-sh/nvm)进行多版本管理
* 安装前端依赖包:
- 进入子目录:`cd <ROOT REPO FOLDER>/client`
- 进入clone下来的项目目录进入子目录:`cd client`
- 同步依赖包:`npm install`
* 启动前端:`npm run serve`