Django-配置docker、git环境与项目创建

Django-配置docker、git环境与项目创建

django官方社区

django官方文档

acwingDjango课学习笔记

Django项目笔记

前提

租好了云服务器,并配置好了免密登录

我的云服务器免密登录的别名是myserver1

配置docker

也可以参考自己之前写的博客:在自己服务器上配置docker

1.传docker镜像

image

将django的镜像用scp传到myserver1

scp django_lesson_1_0.tar myserver1:

ssh到myserver1可以看到镜像已经传过来了

image


2.将镜像加载出来到本地(云服务器)

docker load -i django_lesson_1_0.tar

加载完之后docker images可以看到myserver1上有哪些镜像
image

红框中就是我们刚刚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端口(我的服务器是阿里云的)

image

现在的django_server1就是云服务器上的云服务器hh


4.进入刚刚创建的django_server1docker容器

image

进入docker容器,其实就相当于进入了一个自己服务器上的一个虚拟服务器,现在是在root下。

5.配置my_docker_server密码

passwd

挂起docker容器:ctrl+pctrl+q(不要用ctrl+d!!会关掉容器)

接下来试试,从云服务器登录django_server1

挂起django_server1后,在云服务器myserver1中,直接ssh到django_server1

ssh root@localhost -p 20001

image


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命令看看是什么样子的

image


2.配置git与项目创建

1.建立本地git仓库

进入到我们项目根目录/acapp

要使用git维护起来这个项目,可以使得回滚更加方便
(下面两行代码应该在/acapp根目录中执行)

git init 
ssh-keygen

到现在我们在我们的acapp中建立好了本地git仓库

2.创建远程代码仓库

打开https://git.acwing.com/,创建项目

image

3.为远程仓库配置秘钥

查看公钥,将公钥复制下来

cat /.ssh/id_rsa.pub

将公钥添加到自己acgit的ssh秘钥库

image


git仓库配置

image
复制输入这两行

/acapp下写个README.md,推送到(本地django_server1的acapp下的git)仓库

git status
git add .
git commit -m "add readme"

将本地仓库关联到远程仓库

git remote add origin git@git.acwing.com:rds/acapp.git

可能需要先将本地设置本地的origin分支对应远程仓库的master分支

git push --set-upstream origin master

将本地仓库推送到远程仓库

git push

结果如下:

image

运行django

来运行一下看看是否成功了

python3 manage.py runserver 0.0.0.0:8000

(官方文档可能没有0.0.0.0:8000,这里要加上的,否则可能会有bug)

访问:云服务器ip:8000
image

打开发现是这样的,这里是因为django的安全措施,django运允许访问特定的ip(具体在官方文档),我们把自己云服务器的ip地址添加到ALLOWED_HOSTS即可

在django_server1中使用以下命令来找到ALLWOED_HOSTS所在的文件,然后将本机ip添加进去

ag ALLOWED_HOSTS

本机ip写进去ALLOWED_HOSTS之后刷新云服务器ip:8000:

image

接下来就应该git statusgit commit -m "版本名"git push

但是git status时会有一个__pycache__的文件夹,这里面存放的是django的预编译的文件,这个文件不是我们的源代码,是python每次自己生成来加速python运行的,我们不能把这个里面的文件放入我们的git仓库,因为这个里面的文件是我们不需要保存下来的(每次都把这个放入git仓库会污染我们的代码,让我们的仓库看起来很混乱)

/acapp下新建一个 .gitignore写入

*/__pycache__

image

然后git status
image
可以发现不会再将__pycache__推送到仓库
接下来

git status
git commit -m "modify allow hosts"
git push

将代码传到远程仓库

创建game

一般开两个tmux,一个tmmux用来开发,另一个tmux用来运行django和提交代码给仓库

python3 manage.py startapp game

可以发现多了个game文件夹
image

提交到远程仓库。

django的管理界面

django提供了一个管理界面/admin (云服务器ip:8000/admin)

使用这个页面之前,先把数据库更新一下,返回刚刚django运行的pane,停止运行,输入python3 manage.py migrate

这时可以正常进入admin登录页面了

创建管理员账号

python3 manage.py createsuperuser

设置账号密码,邮箱不设置可以直接回车

然后登录,就可以看到管理员页面啦

image

可以将admin账号密码先保存在readme.md中

使用git推送到远程仓库中。

posted @ 2022-11-17 19:28  r涤生  阅读(151)  评论(0编辑  收藏  举报