运行Django¶
备注
对于Django,初始化整个项目称为 startproject
,此时默认会在项目下生成一个和项目同名的 app
初始化项目下的某个应用功能,例如 api
,则在项目目录下执行 startapp
,例如,如果要使用 Django REST framework快速起步 则执行:
django-admin.py startapp api
创建开发项目
Djang提供了一个命令行工具来创建一个项目,这里我们构建的是一个清单程序,所以命名项目 superlists
django-admin.py startproject superlists
上述命令会创建目录 superlists
并在这个目录下还有一个同名的 superlists
子目录:这个 superlists/superlists
文件夹就是用来保存应用的整个项目的文件。
在 superlists
目录下 manage.py
程序,这个程序是负责Django环境管理和运行的。
数据库同步(Apply all migrations: admin, auth, contenttypes, sessions):
python manage.py migrate
运行开发服务器:
python manage.py runserver
此时,再次运行 python functional_tests.py
则可以看到启动的Firefox正确打开了Django页面。
Django ALLOWED_HOSTS
¶
在 Django 项目 settings.py
中有一行 ALLOWED_HOSTS
限制了客户端访问Django时候能够使用域名和IP地址:
ALLOWED_HOSTS = ['.localhost', '127.0.0.1', '192.168.47.230', 'onesre.huatai.me']
# ALLOWED_HOSTS = ['*']
如果没有配置好 ALLOWED_HOSTS
(这里配置的是Django服务器IP地址 192.168.47.230
和域名 onesre.huatai.me
),则外部访问就会被拒绝,并且在Django终端显示:
"GET /api/hygonwafmonitor/ HTTP/1.0" 200 15996
Invalid HTTP_HOST header: '192.168.47.230'. You may need to add '192.168.47.230' to ALLOWED_HOSTS.
Bad Request: /api/hygonwafmonitor/
"GET /api/hygonwafmonitor/ HTTP/1.0" 400 143
创建Git仓库¶
现在把程序提交到git仓库( functional_tests.py
移动到 superlists
目录下然后再执行 ):
git init .
git仓库初始化之后,提交文件前需要先把不合适提交的数据敏感文件剔除,例如 superlists/db.sqlite3
echo "db.sqlite3" >> .gitignore
echo "__pycache__" >> .gitignore
echo "*.pyc" >> .gitignore
如果没有剔除不需要添加的文件,例如 superlists/superlists/__pycache__
目录下的文件,则使用以下命令删除:
git rm -r --cached superlists/superlists/__pycache__
然后添加文件:
git add .
git status
检查没有问题,就提交:
git commit
此时填写提交的简述。
如果要提交到远程github上,参考github的文档。
Docker Compose运行开发环境¶
我们通过部署 Django开发环境(linux) 来 运行Django ,但是每次这样重复创建环境也是非常麻烦的事情。并且,部署到测试环境、生产环境,都是重复的工作。我们通过 Docker Atlas 可以 快速实现Docker运行Djgnao 。