目录
文章目录
一、准备工作
1.1 云端服务器
将镜像上传到自己租的云端服务器
scp /var/lib/acwing/docker/images/ django_lesson_1_0.tar server_name:
登录自己的云端服务器
ssh server_name
将镜像加载到本地
docker load -i django_lesson_1_0.tar
1.2 创建并启动镜像 (端口要自己去云平台放行)
docker run -p 20000:22 -p 8000:8000 --name django_server -itd django_lesson:1.0
#容器名叫django_server,镜像名叫django_lesson:1.0
#关闭后可以通过docker start django_server打开
设置root密码
passwd
创建普通用户liuxu
adduser liuxu
给用户分配sudo权限
usermod -aG sudo liuxu
可切换到用户liuxu中
su liuxu
挂起容器(注意ctrl+d会直接关闭容器)
ctrl p + ctrl q
1.3 返回本地终端,为用户配置别名和免密登录
配置别名
vim config
Host django
Hostname ×××.××.××.×××
User liuxu
Port 20000
为liuxu用户一键添加公钥,免密登录
ssh-copy-id django
配置一下环境
scp .bashrc .vimrc .tmux.conf django:
查看Django的版本
django-admin --version
创建django项目lxapp
django-admin startproject lxapp
二、开始施工
查看文件结构
./tree
2.1 Git
2.1.1 配置git
进到acapp中将其配置成git仓库
git init
生成密钥用于连接到ac git上面(git实际上是用ssh实现的)
ssh-keygen
设置全局用户名,信息记录在~/.gitconfig
文件中
git config --global user.name "xxx"
在git偏好设置中,打开ssh密钥,添加一下刚才生成的公钥
设置全局邮箱地址,信息记录在~/.gitconfig
文件中
git config --global user.email xxx@xxx.com
查看此时的状态git status
git .
将当前目录文件添加到暂存区
再次查看git status
此时的状态
提交代码git commit -m "***"
添加README文件
2.1.2 推送现有的git仓库
git remote add origin git@git.acwing.com:lx/lxapp.git
git push --set-upstream origin master
此时项目已经部署在git上面了
2.2 运行Django
2.2.1 运行项目
再打开一个tmux
,(一个tmux用于维护控制台,另一个tmux用于开发)
运行项目:python3 manage.py runserver 0.0.0.0:8000
打开django页面:公网IP地址:8000
2.2.2 添加允许访问Django的网址
我们可以使用ag
全文搜索字符串
发现错误,这是由于Django的保护机制,我们要在修改settins.py
中
将我们的公网IP地址写入ALLOWED_HOSTS
列表中,注意要以字符串形式写入
2.2.3 过滤无需上传的文件
此时git status发现多了一个__pycache__
文件,这个是预编译好的python文件,用于加快python运行的,对我们的项目无关,我们上传到git上时最好把这种编译好的中间文件忽略
在git根目录下编辑.gitignore文件,在里面输入*/__pycache__
,可以过滤掉类似的文件
此时git status发现已经过滤掉了__pycache__
文件
此时再提交一下
三、正式施工
3.1 创建一个app项目
python3 manage.py startapp lxgame
- admin.py:用来存储管理员界面,看到的数据库
- models.py:用来定义网站里各种数据库的表
- views.py:用来写函数的
3.2 更新数据库并登陆管理员页面
ctrl c 先关掉控制台
python3 manage.py migrate #同步一下数据库的修改
python3 manage.py createsuperuser # 创建管理员账号
pyhton3 manage.py runserver 0.0.0.0:8000 # 启动控制台
登录django管理员界面,公网IP地址:8000/admin
,进到管理员登录界面后,输入一下刚才创建的账号即可进到管理员界面
3.3
cd lxgame
touch urls.py
mkdir templates
- models:存储各种数据结构(class等)
- views:存储函数
- urls:路由
- templates:存储网页模板
定义一个index函数vim views
,函数内容如下:
from django.http import HttpResponsedef index(request) :
return HttpResponse("Liuxu's travel of the web exploration! ! ! ")
编辑路由vim urls.py
from django.urls import pathfrom lxgame.views import index
urlpatterns =[
path("", index,name="index"),#如果路径为空的话,就返回index里面的内容
]
最后还要将lxgame中的url写到总的url里面
from django.contrib import admin
from django.urls import path,include
urlpatterns =[
path('',include('lxgame.urls')),
path('admin/',admin.site.urls),
]
网页显示的内容由views中的index函数控制
总结
本篇文章记录了Django的搭建过程,以及git的配置以便后期的版本管理。