HelloDjango-REST-framework-tutorial
完全免费、开源的 HelloDjango 系列教程之 django REST framework 博客开发。
本项目延续自 HelloDjango-blog-tutorial,如果对 django 基础不是很熟悉,建议先学习 HelloDjango - Django博客教程(第二版),然后再进阶学习 django REST framework。
虽然项目延续自 HelloDjango-blog-tutorial,但只要你已有 django 基础(ORM、类视图、表单等),就可以直接开启本教程。两个教程在内容上并无联系,只是本教程借用了上一个教程的项目结构以及数据模型(Model)的定义。
master 分支为项目的主分支,每一步关键功能的开发都对应一篇详细的教程,并和历史提交以及标签一一对应。例如第一篇教程对应第一个 commit,对应标签为 step1,依次类推。
可以使用 Virtualenv、Pipenv、Docker 等在本地运行项目,每种方式都只需运行简单的几条命令就可以了。
注意:
因为博客全文搜索功能依赖 Elasticsearch 服务,如果使用 Virtualenv 或者 Pipenv 启动项目而不想搭建 Elasticsearch 服务的话,请先设置环境变量
ENABLE_HAYSTACK_REALTIME_SIGNAL_PROCESSOR=no以关闭实时索引,否则无法创建博客文章。如果关闭实时索引,全文搜索功能将不可用。Windows 设置环境变量的方式:
set ENABLE_HAYSTACK_REALTIME_SIGNAL_PROCESSOR=noLinux 或者 macOS:
export ENABLE_HAYSTACK_REALTIME_SIGNAL_PROCESSOR=no使用 Docker 启动则无需设置,因为会自动启动一个包含 Elasticsearch 服务的 Docker 容器。
无论采用何种方式,先克隆代码到本地:
$ git clone https://github.com/HelloGitHub-Team/HelloDjango-REST-framework-tutorial.git
创建虚拟环境并激活虚拟环境,具体方法可参考基础教程中的:开始进入 django 开发之旅:使用虚拟环境
安装项目依赖
$ cd HelloDjango-rest-framework-tutorial
$ pip install -r requirements.txt
迁移数据库
$ python manage.py migrate
创建后台管理员账户
$ python manage.py createsuperuser
具体请参阅基础教程中的 创作后台开启,请开始你的表演。
运行开发服务器
$ python manage.py runserver
浏览器访问 http://127.0.0.1:8000/admin,使用第 4 步创建的管理员账户登录后台发布文章,如何发布文章可参考基础教程中的:创作后台开启,请开始你的表演。
或者执行 fake 脚本批量生成测试数据:
$ python -m scripts.fake
批量脚本会清除全部已有数据,包括第 4 步创建的后台管理员账户。脚本会再默认生成一个管理员账户,用户名和密码都是 admin。
浏览器访问:http://127.0.0.1:8000,可进入到博客首页
安装 Pipenv(已安装可跳过)
$ pip install pipenv
安装项目依赖
$ cd HelloDjango-rest-framework-tutorial
$ pipenv install --dev
关于如何使用 Pipenv,参阅基础教程中:开始进入 django 开发之旅 的 Pipenv 创建和管理虚拟环境部分。
迁移数据库
在项目根目录运行如下命令迁移数据库:
$ pipenv run python manage.py migrate
创建后台管理员账户
在项目根目录运行如下命令创建后台管理员账户
$ pipenv run python manage.py createsuperuser
具体请参阅基础教程中的 创作后台开启,请开始你的表演。
运行开发服务器
在项目根目录运行如下命令开启开发服务器:
$ pipenv run python manage.py runserver
浏览器访问 http://127.0.0.1:8000/admin,使用第 4 步创建的管理员账户登录后台发布文章,如何发布文章可参考基础教程中的:创作后台开启,请开始你的表演。
或者执行 fake 脚本批量生成测试数据:
$ pipenv run python -m scripts.fake
批量脚本会清除全部已有数据,包括第 4 步创建的后台管理员账户。脚本会再默认生成一个管理员账户,用户名和密码都是 admin。
在浏览器访问:http://127.0.0.1:8000/,可进入到博客首页。
安装 Docker 和 Docker Compose
构建和启动容器
$ docker-compose -f local.yml build $ docker-compose -f local.yml up
创建后台管理员账户
$ docker exec -it hellodjango_rest_framework_tutorial_local python manage.py createsuperuser
其中 hellodjango_rest_framework_tutorial_local 为项目预定义容器名。
浏览器访问 http://127.0.0.1:8000/admin,使用第 3 步创建的管理员账户登录后台发布文章,如何发布文章可参考基础教程中的:创作后台开启,请开始你的表演。
或者执行 fake 脚本批量生成测试数据:
$ docker exec -it hellodjango_rest_framework_tutorial_local python -m scripts.fake
批量脚本会清除全部已有数据,包括第 3 步创建的后台管理员账户。脚本会再默认生成一个管理员账户,用户名和密码都是 admin。
为 fake 脚本生成的博客文章创建索引,这样就可以使用 Elasticsearch 服务搜索文章
$ docker exec -it hellodjango_rest_framework_tutorial_local python manage.py rebuild_index
通过 admin 后台添加的文章会自动创建索引。
在浏览器访问:http://127.0.0.1:8000/,可进入到博客首页。
拼命撰写中...

欢迎关注 HelloGitHub 公众号,获取更多开源项目的资料和内容。
加入 QQ 群和更多的 django 开发者进行交流:
Django学习小组主群:696899473

本作品采用署名-非商业性使用-禁止演绎 4.0 国际 进行许可。