Django框架笔记1—配置docker、git环境与项目创建
前置学习
tmux学习
tmux是一个优秀的终端复用软件,可以使终端的使用效率和开发效率大大提高。
使用tmux可以生成一个会话,在此会话中可以打开多个窗口,一个窗口可以水平、垂直分成若干个窗格
常用命令
tmux ls
查看所有tmux会话
tmux
这将打开一个新会话,创建一个新窗口,并在该窗口中启动外壳, 不起名默认的session-name就是 0, 1。
tmux attach -t <session-name>
重新连接会话
tmux kill-session -t
Ctrl+b d
或者tmux detach
退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。(可以实现退出某个进程窗口后台运行,相当挂起操作,例如命令行运行一个程序比如跑一个深度学习或者开启某个服务器然后键入此操作可以后台运行)
Ctrl+b
?
查看命令
启动tmux时会从**~/.tmux.conf**中读取其配置参数,可在其中换绑Ctrl+b为Ctrl+a,更方便操作。
换绑方式:在tmux配置文件~/.tmux.conf
里配置
set-option -g prefix C-a #绑定前缀键为ctrl + a
unbind-key C-b #解绑前缀键ctrl + b
bind-key C-a send-prefix
以下是一些用于管理Tmux窗口和窗格的最常用命令:
Ctrl+b c
创建一个新窗口(带外壳)
Ctrl+b w
列出所有窗格
Ctrl+b s
列出所有会话。
Ctrl+b z
最大化和最小化窗格,平铺或者分格
Ctrl+b 0
切换转到窗口0(按编号)
Ctrl+b ,
重命名当前窗口
Ctrl+b %
将当前窗格水平拆分为两个窗格
Ctrl+b "
将当前窗格垂直拆分为两个窗格
Ctrl+b o
转到下一个窗格
Ctrl+b ;
在当前窗格和上一个窗格之间切换
Ctrl+b x
关闭当前窗格
Ctrl+b [ Enter
复制
Ctrl+b ]
粘贴
基本涵盖了常用的
docker常用命令
-
images :
docker images
:列出本地所有镜像
docker rmi ubuntu1
:删除镜像ubuntu1
docker load -i docker_lesson_1_0.tar
# 将镜像加载到本地
docker [container] commit CONTAINER IMAGE_NAME:TAG
:创建某个container的镜像
docker save -o ubuntu_20_04.tar ubuntu:20.04
:将镜像ubuntu:20.04导出到本地文件ubuntu_20_04.tar中
docker load -i ubuntu_20_04.tar
:将镜像ubuntu:20.04从本地文件ubuntu_20_04.tar中加载出来
如何将配置好的docker添加端口号,先拉取镜像,再用镜像生成容器时配置端口 -
container:
docker [container] create -it ubuntu:20.04
:利用镜像ubuntu:20.04创建一个容器。
docker ps -a
:查看本地的所有容器
docker [container] start CONTAINER
:启动容器
docker [container] stop CONTAINER
:停止容器
docker [container] restart CONTAINER
:重启容器
docker [contaienr] run -itd ubuntu:20.04
:创建并启动一个容器
docker [container] attach CONTAINER
:进入容器
先按Ctrl-p,再按Ctrl-q可以挂起容器
docker [container] exec CONTAINER COMMAND
:在容器中执行命令
docker [container] rm CONTAINER
:删除容器
docker container prune
:删除所有已停止的容器
docker export -o xxx.tar CONTAINER
:将容器CONTAINER导出到本地文件xxx.tar中
docker import xxx.tar image_name:tag
:将本地文件xxx.tar导入成镜像,并将镜像命名为image_name:tag
docker export/import与docker save/load的区别:
export/import会丢弃历史记录和元数据信息,仅保存容器当时的快照状态
save/load会保存完整记录,体积更大
docker top CONTAINER
:查看某个容器内的所有进程
docker status
:查看所有容器的统计信息,包括CPU、内存、存储、网络等信息
docker cp xxx CONTAINER:xxx
或docker cp CONTAINER:xxx
xxx:在本地和容器间复制文件
docker rename CONTAINER1 CONTAINER2
:重命名容器
docker update CONTAINER --memory 500MB
:修改容器限制
配置服务器免密登录
先生成密钥 ssh-keygen
获取密钥
在".ssh/config"中配置Host、HostName、USer、Port,后面直接用ssh $HOST
就能直接登录
在终端输入ssh-copy-id $HOST
#配置免密登录,输入一次后续无需再输入密码即可登录
登陆服务器后,添加用户,增加sudo权限
adduser acs
#添加用户acs
usermode -aG sudo acs
#acs添加sudo权限,
将镜像上传至自己的云服务器scp docker_lesson_1_0 django
ssh django
登陆自己服务器
docker load -i docker_lesson_1_0.tar
# 将镜像加载到本地
docker run -p 20000:22 -p 8000:8000 --name django_server -itd docker_lesson:1.0
# 创建并运行docker_lesson:1.0镜像
docker attach my_docker_server
#进入创建的docker容器
passwd
设置密码
回到云服务器安全组规则添加端口20000
最后就可以通过acwing的终端ssh*登录docker服务器ssh root@xxx.xxx.xxx.xxx -p 20000
# xxx.xxx.xxx.xxx为自己租的服务器的IP地址,最后可以设置免密登录
- 先将镜像load上来后
docker images
可以显示所有的镜像,
然后通过docker run -p 20000:22 -p 8000:8000 --name django_server -itd docker_lesson:1.0
启动容器,通过镜像docker_lesson:1.0创建容器,容器名字叫django_server
itd分别代表 i:以交互模式运行通常与t一起使用,t代表为容器分配一个伪输入终端,d是后台运行容器,并返回容器id
- docker ps -a可以显示当前启动容器,使用命令
docker start #{containerName}/#{containerID}来开始启动终止的容器
docker attach [CONTAINER]
连接到正在运行的容器
将自己服务器熟悉的配置上传至docker里
scp .bashrc .vimrc .tmux.conf django:
django-admin startproject acapp
配置git
git init
创建新的git仓库
git config --global user.name xxx
git config --global user.email xxx@xxx.com
记录信息在~/.gitconfig文件中
生成密钥,将公钥复制到github中
git status
查看在你上次提交之后是否有对文件进行再次修改
git add .
上传所有到
git commit -m "start_project"
vim README.md
创建README文件
git remote add origin git@github.com:mainkeys/Cosy_shooting.git
git push origin master
简写:git push
一般来说先commit、pull再push
git push --set-upstream origin master
将服务器启动
python3 manage.py runserver 0.0.0.0:8000
在acapp/acapp里setting设置ALLOW_HOST ag ALLOWED-HOSTS
#全文搜索
找到这个字段所在位置,并将自己的IP地址添加到里面
便可用 IP地址:8000
打开django页面
__pychache__为python预编译文件,在根目录.gitignore里加上 **/__pycache__
表示屏蔽所有__pycache文件
创建app
python3 manage.py startapp game
创建app,model.py用来保存数据结构,views用来写对应的函数功能,templates用来写前端,urls是路由,用来django可以创建多个app
关闭服务器运行python3 manage.py migrate
同步数据库的修改
打开服务器在地址栏输xxx.xxx:8000/admin
可进入admin页面
python3 manage.py createsuperuser
创建超级管理员
touch urls.py
mkdir templates
接下来开始编写
game/views.py:
game/urls.py:
acapp/ursl: #总路由,要将game的路由加入其中
#返回game里的内容,将game/urls里的内容include进来,如果只有一个app,path第一个参数设置为空就可以直接打开页面
服务器接收用户请求的路线为:用户请求
->
项目的urls->
app的urls->
views.py里的函数->
返回views函数拼好的html字符串到前端进行渲染
另:欢迎大家访问我的个人博客