0、配置docker、git环境与django项目创建
项目搭建
租一台具有公网IP
的云服务器,并且配好Docker
环境,采用git
管理版本文件。
前期搭建可以参考:
配置环境
-
将镜像上传到自己租的云端服务器
scp django_1_0.tar server_name:
-
登录自己的云端服务器 ,使用SSH免密登录
ssh server_name
-
将镜像加载到本地
docker load -i django_1_0.tar
-
创建并运行
django:1.0
镜像 (端口要自己去云平台放行-安全组) ,20000用于ssh登录,8000用于访问项目docker run -p 20000:22 -p 8000:8000 --name django_server -itd django:1.0
-
进入创建的docker容器
docker attach django_server
-
设置root密码 ,与云服务器相同, 我们也不会在虚拟服务器中直接使用
root
权限, 会创建一个有sudo
权限的用户,详细配置:云服务器配置与安装# 设置root密码 passwd # 创建普通用户sdz adduser sdz # 给用户sdz分配sudo权限 usermod -aG sudo sdz # 可切换到用户sdz中 su sdz
-
ctrl p + ctrl q
挂起容器 (让虚拟服务器在后台运行): -
返回AC terminal,为
docker
的sdz
用户配置别名和免密登录 ,详细介绍:SSH免密登录。# 配置别名,注意添加端口号 vim ~/.ssh/config # 为sdz用户一键添加公钥,免密登录 ssh-copy-id 别名
-
配置置一下docker环境
scp .bashrc .vimrc .tmux.conf django:
Docker临时端口映射方法
方法
-
利用
docker ps
命令查看<container_id>
(容器id) -
查看容器IP:
docker inspect <container_id> | grep IPAddress
-
宿主机配置
iptables
:iptables -t nat -A DOCKER -p tcp --dport <host_port> -j DNAT --to-destination <container_ip>:<docker_port> iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source <container_ip> --destination <container_ip> --dport <docker_port> iptables -A DOCKER -j ACCEPT -p tcp --destination <container_ip> --dport <docker_port>
-
查看是否映射成功:
iptables -t nat -nvL
例如
将容器内22端口映射到宿主机20000端口
172.17.0.2 ---> container_ip
20000 ---> host_port
22 ---> docker_port
iptables -t nat -A DOCKER -p tcp --dport 20000 -j DNAT --to-destination 172.17.0.2:22
iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source 172.17.0.2 --destination 172.17.0.2 --dport 22
iptables -A DOCKER -j ACCEPT -p tcp --destination 172.17.0.2 --dport 22
iptables -t nat -nvL(查看是否映射成功)
注:如果报错在命令前面加上sudo
提升一下权限
缺陷:重启之后需要重新加
项目创建
-
打开
tmux
是个好习惯, 防止意外退出工作丢失. -
创建
django
项目hyld
django-admin startproject hyld
-
配置
git
, 使用git
维护项目,详细参考git 常用命令:-
ssh-keygen
生成密钥用于连接到gitee
或者ac git
上面 -
在
gitee
偏好设置中,打开ssh
密钥,添加一下刚才生成的公钥。 -
git init
进到hyld
中将其配置成git
仓库 -
打开
gitee
,在gitee
上创建一个仓库(项目)按照下面的提示在gitee
里面配置一下git
git config --global user.name xxx git config --global user.email xxx@xxx.com git add . git commit -m "xxx" git remote add origin git@gitee.com:pxlsdz/hyld.git # 设置本地的branch_name分支对应远程仓库的branch_name分支 git push --set-upstream origin master
-
编写项目
-
首先尝试运行项目:
python3 manage.py runserver 0.0.0.0:8000
-
运行成功, 在浏览器输入:
IP:8000
就可以访问了。 -
网页提示需要将
IP
地址放入ALLOWED_HOSTS
。 -
小技巧: 使用
ag ALLOWED_HOSTS
找到其所属文件以及在文件中的位置. 将我们的IP
加入其中。 -
至此我们就成功运行我们的项目了。
-
-
创建
app
-
小技巧: 使用
git add .
将所有修改文件加入暂存区时忽略某些文件。比如__pycache__
是中间文件,只是用来加速运行的,是python
系统生成的,不是完美源代码。在git
仓库
根目录创建.gitignore
, 每行写入你希望忽略的文件名(可使用类型正则表达式的匹配模式),例如**/__pycache__
-
我们输入
IP:8000
看到的网页是Django
默认网页. 要编写我们自己的网页(代码), 需要创建app
. (project
提供配置文件; 我们在app
编写模型和视图代码). -
云端开发习惯
: 开两个tmux
:一个tmux
用于维护控制台, 接受运行过程中的信息; 另一个用于开发。
我们可以Ctrl-a + d
挂起当前tmux
, 输入tmux
再创建一个。之后用Ctrl-a + s
在两个tmux
间切换。 -
生成一个
app
:python3 manage.py startapp game
. 其中game
为app
名.game
文件中的内容:admin.py
: 存储管理员页面models.py
: 定义数据库表views.py
: 视图/
函数
-
登录
django
管理员界面-
ctrl c
先关掉控制台 -
python3 manage.py migrate
同步一下数据库的修改,之后就可以正常进入IP地址:8000/admin
-
python3 manage.py createsuperuser
创建管理员账号 -
python3 manage.py runserver 0.0.0.0:8000
启动控制台
IP地址:8000/admin
进到管理员登录界面,输入一下刚才创建的账号即可进到管理员界面
-
-
-
编写页面
-
game
中关键的几个文件(夹),如果没有手动创建即可cd game touch urls.py mkdir templates
-
models.py
: 数据存储格式, 如Class
。 -
views.py
: 视图/
函数逻辑, 例如点击网页中的按钮, 实际是调用在views
中实现的函数. -
urls.py
: 路由, 根据不同网页地址判断调用什么函数. -
templates
: 文件夹, 存储页面格式. 如html
.
随着网站逻辑的增加, 上述的几个文件可以借助python
很容易的扩展为文件夹(树形结构的文件).
-
-
在
views
中写入返回字符串的函数(网页向views
传入请求, 其返回一个字符串); 在game
下的urls
中写入如果地址为IP:8000/...
, 调用哪个函数, 此外要在app
下的urls
引入game
的urls
.# game 文件夹 # 定义接口 vim views.py # 定义路由 vim urls.py # hyld 文件夹 cd hyld # 加入访问game的路由即可 vim urls.py
-
大致顺序: 输入网址
-->
hyld/urls
-->
game/urls
-->
game/views
内的函数-->
返回字符串至网页. -
git
保存提交分支,注意过滤掉.swp
文件,具体修改代码请查看gitee
-