Django-配置docker、git环境与项目创建
acwingDjango课学习笔记
Django项目笔记
前提
租好了云服务器,并配置好了免密登录
我的云服务器免密登录的别名是myserver1
配置docker
也可以参考自己之前写的博客:在自己服务器上配置docker
1.传docker镜像
将django的镜像用scp
传到myserver1
scp django_lesson_1_0.tar myserver1:
ssh到myserver1可以看到镜像已经传过来了
2.将镜像加载出来到本地(云服务器)
docker load -i django_lesson_1_0.tar
加载完之后docker images
可以看到myserver1上有哪些镜像
红框中就是我们刚刚scp过去的、接下来django项目用的docker镜像
3.使用本地镜像创建docker容器(云服务器上搭建云服务器)
docker run -p 20001:22 -p 8000:8000 --name django_server1 -itd django_lesson:1.0
这里将这个docker容器(django_server1)的22端口映射到本机(云服务器)没有用过的端口20001,将8000映射到8000(后面调试会用到)
由于云服务器用了20001和8000端口,我需要去阿里云给我的服务器开放20001和8000端口(我的服务器是阿里云的)
现在的django_server1
就是云服务器上的云服务器hh
4.进入刚刚创建的django_server1
docker容器
进入docker容器,其实就相当于进入了一个自己服务器上的一个虚拟服务器,现在是在root下。
5.配置my_docker_server密码
passwd
挂起docker容器:ctrl+p
后ctrl+q
(不要用ctrl+d
!!会关掉容器)
接下来试试,从云服务器登录django_server1
挂起django_server1后,在云服务器myserver1中,直接ssh到django_server1
ssh root@localhost -p 20001
6.新建用户rds
并给这个用户sudo
权限
新建用户,配置密码,一路回车
adduser rds
分配sudo
权限(此后这个用户rds想用root权限命令的时候前面加一个sudo就行)
usermod -aG sudo rds
现在可以远程登录django_server1的rds用户啦
在ac terminal中ssh到django_server1的rds用户
ssh rds@云端服务器ip -p 20001
配置django_server1免密登录
ac terminal免密登录django_server1
编写/.ssh/config
Host django_server1
HostName 云服务器ip
User rds
Port 20001
这样就把它别名改成了django_server1
(为了方便,把docker容器名和这里免密登录别名都写成一样的了)
配置免密登录
ssh-copy-id django_server1
使用别名免密登录
ssh rds@django_server1
或
ssh django_server1 #config中此别名下如果只有一个用户可以这样
至此免密登录django_server1完毕!~
传tmux、vim祖传三件套
回到ac terminal
scp .bashrc .vimrc .tmux.conf django_server1:
git环境 && 建立django项目
可以先看看本地django版本
django-admin --version
1.新建django项目
django-admin start project acapp
此时在当前目录下新建了个acapp
的文件夹,可以使用tree
命令看看是什么样子的
2.配置git与项目创建
1.建立本地git仓库
进入到我们项目根目录/acapp
要使用git
维护起来这个项目,可以使得回滚更加方便
(下面两行代码应该在/acapp根目录中执行)
git init
ssh-keygen
到现在我们在我们的acapp中建立好了本地git仓库
2.创建远程代码仓库
打开https://git.acwing.com/,创建项目
3.为远程仓库配置秘钥
查看公钥,将公钥复制下来
cat /.ssh/id_rsa.pub
将公钥添加到自己acgit的ssh秘钥库
git仓库配置
复制输入这两行
/acapp
下写个README.md
,推送到(本地django_server1的acapp下的git)仓库
git status
git add .
git commit -m "add readme"
将本地仓库关联到远程仓库
git remote add origin [email protected]:rds/acapp.git
可能需要先将本地设置本地的origin分支对应远程仓库的master分支
git push --set-upstream origin master
将本地仓库推送到远程仓库
git push
结果如下:
运行django
来运行一下看看是否成功了
python3 manage.py runserver 0.0.0.0:8000
(官方文档可能没有0.0.0.0:8000,这里要加上的,否则可能会有bug)
访问:云服务器ip:8000
打开发现是这样的,这里是因为django的安全措施,django运允许访问特定的ip(具体在官方文档),我们把自己云服务器的ip地址添加到ALLOWED_HOSTS
即可
在django_server1中使用以下命令来找到ALLWOED_HOSTS
所在的文件,然后将本机ip添加进去
ag ALLOWED_HOSTS
本机ip
写进去ALLOWED_HOSTS
之后刷新云服务器ip:8000
:
接下来就应该git status
、git commit -m "版本名"
、git push
了
但是git status
时会有一个__pycache__
的文件夹,这里面存放的是django的预编译的文件,这个文件不是我们的源代码,是python每次自己生成来加速python运行的,我们不能把这个里面的文件放入我们的git仓库,因为这个里面的文件是我们不需要保存下来的(每次都把这个放入git仓库会污染我们的代码,让我们的仓库看起来很混乱)
在/acapp
下新建一个 .gitignore
写入
*/__pycache__
然后git status
可以发现不会再将__pycache__
推送到仓库
接下来
git status
git commit -m "modify allow hosts"
git push
将代码传到远程仓库
创建game
一般开两个tmux,一个tmmux用来开发,另一个tmux用来运行django和提交代码给仓库
python3 manage.py startapp game
可以发现多了个game
文件夹
提交到远程仓库。
django的管理界面
django提供了一个管理界面/admin
(云服务器ip:8000/admin
)
使用这个页面之前,先把数据库更新一下,返回刚刚django运行的pane,停止运行,输入python3 manage.py migrate
这时可以正常进入admin登录页面了
创建管理员账号
python3 manage.py createsuperuser
设置账号密码,邮箱不设置可以直接回车
然后登录,就可以看到管理员页面啦
可以将admin账号密码先保存在readme.md中
使用git推送到远程仓库中。
标签:git,仓库,server1,django,服务器,docker,Django From: https://www.cnblogs.com/rdisheng/p/16897574.html