1. Django 项目创建
1.1 服务器及Docker环境
1.1.1 云服务器
上线项目需要公网 ip
以及调试需要,因此需提前准备好一个云服务器,购买以及相关环境配置参考:云服务器及 Docker 教程。
其次,在本地或者任何方便的 sell
终端配置好服务器的免密登录,以便随时连接到服务器进行工作。
1.1.2 镜像和容器配置
配置好服务器后,在终端将课程提供的镜像 django_lesson_1_0.tar
上传至服务器:
scp /var/lib/acwing/docker/images/django_lesson_1_0.tar server_name: #server_name 为配置好免密登录的服务器名称
接下来将镜像加载到本地:
docker load -i django_lesson_1_0.tar
创建并运行容器,并初始化端口映射:
docker run -p 20000:22 -p 8000:8000 --name django_server -itd django_lesson:1.0
- 若某主机端口被其他容器占用,可以修改端口,如
20022:22
。 - 若忘记初始化端口,需要停止并删除该容器,重新创建。
- 一个主机端口只能被一个容器使用,需要新建端口只能将当前容器
连接容器并创建一个
root
用户,之后配置该容器的免密登录即可。
1.2 配置项目Git环境
打开 tmux
初始化新的 Django
项目:
django-admin startproject acapp #acapp 为项目所在文件夹
然后将 acapp
项目文件夹初始化 git
仓库,便于版本控制管理和维护,且上传云端后可以防止项目丢失。
git init #进入 acapp 中初始化git仓库
将该容器的公钥上传 git
,在偏好设置种添加 ssh
密钥,之后 在 git
云端创建新的项目,按照提示在终端里连接仓库。
1.3 尝试运行项目
在 acapp
文件夹下执行下方指令运行项目:
python3 manage.py runserver 0.0.0.0:8000
然后浏览器打开 xx.xx.xx.xx:8000
进入项目界面。
其中 xx.xx.xx.xx
为服务器的公网 ip
, 8000
为接入的端口。
首次打开会提示需要将 xx.xx.xx.xx
该 ip
加入到 ALLOWED-HOSTS
中,一般该设置所在文件位置为 /acapp/acapp/settings.py
,使用 vim
打开文件 settings.py
,找到 ALLOWED-HOSTS
选项添加 ip
。
顺便找到 settings.py
里的 TIME_ZONE
选项,修改时区为 'Asia/Shanghai'
,以便照应本地时间。
另一种方法直接全文查找 ag ALLOWED-HOSTS
返回文件位置。
注意:
- 运行后,控制台会显示项目主页的访问请求信息,按
Ctrl + c
结束进程。 - 更新的一些相关前端文件在运行时会事实更新,控制台也会返回报错信息。
1.4 创建Django app
创建一个 Django
子应用:
python3 manage.py startapp game #game 为该子应用的名字
之后的项目开发在这个子应用 game
文件夹下进行。
关闭运行中的控制台,同步数据库:
python3 manage.py migrate
创建管理员账号:
python3 manage.py createsuperuser
接下来重启控制台:
pyhton3 manage.py runserver 0.0.0.0:8000
浏览器打开 xx.xx.xx.xx:8000/admin
进入管理员登录界面,输入创建好的账号即可登录。
1.5 项目架构与逻辑
1.5.1 项目架构
对于每一个 Django
应用来说,基本存在如下结构:
models
:数据类库,存储预定义的class
。views
:存储函数及其执行逻辑。urls
:存储路由,链接的指向。templates
:存储html
文件。
1.5.2 项目逻辑
game/views.py
views
存储函数及其执行的逻辑:
from django.http import HttpResponse
def index(resquest):
return HttpResponse("lys is a dog")
在如上例子中,当 index()
函数接收到用户的请求的时,就会被调用,执行 HttpResponse("lys is a dog")
。
game/urls.py
urls
存储了相应的路由,即调用函数链接的指向,此处的路由为 game
子应用的路由:
from django.urls import path
from game.views import index # 从game/views.py 里面调用index函数
urlpatterns = [
path('', index, name="index")
]
执行语句 path('', index, name = 'game_index')
意思为,在用户访问网站的 /game
目录时(path
的路径为 ''
,即为空路径,默认指向当前目录的根目录)会调用 index
函数。
index
函数的定义及其执行逻辑存储在 game/views.py
中,故需要 from game.views import index
,其中 name="index"
表示它在该 urls.py
里的名字。
acapp/urls.py
设置子应用的路由仍需要将其加入到整个项目的路由当中:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('game.urls')),
path('admin/', admin.site.urls)
]
此处的 path
为空路径,默认访问整个网站的根目录。由于此时调用的函数是 include('game.urls')
,所以相当于访问 /game/urls
。
对于 game/urls.py
里,我们已经设置了该路由的链接指向,接下来会执行我们在 urls.py
里调用的函数。
综上,利用上面的两个路由,在访问 xx.xx.xx.xx:8000/
时,实际访问到了 xx.xx.xx.xx:8000/game
界面,并且此时 game/urls.py
执行 game/views.py
中的 index
函数,该函数返回一个字符串 "lys is a dog"
输出在该页面中。
相关文章
- Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」
- 使用pycharm创建Django项目[通俗易懂]
- pycharm django环境搭建_IDEA如何创建项目
- pycharm怎么运行django项目_django怎么用
- pycharm django环境搭建_挣钱项目
- centos7使用nginx+uwsgi部署python django项目
- 创建一个Django项目
- 部署上线-部署Django项目
- Django(14)模型中常用的属性(超详细)[通俗易懂]
- Django(13)django时区问题
- django权限管理例子_创建django项目的命令
- django分页器的用法_django分页查询
- Python+Django实现基于人脸识别的门禁管理系统【源码】
- pycharm django开发_django项目实例精解
- 宝塔运行Django Admin项目错误解决方法
- 使用 centerOS 7 部署 django 项目 python3.7.3
- 【Django】在大型项目中的django的性能模型字段primary_key
- 【Django】当大型项目采用Django框架对于QueryDict以及模板的表单在Admin 管理工具的使用
- 【Django】聚合在Django的详细解析以及运用在企业级项目里的方法
- 使用Django快速搭建reportServer
- Django+Celery学习笔记3——django+celery+redis实现异步任务与定时任务
- django request 获取请求的 IP 地址
- 若依Django框架soft-delete导致的数据查询异常
- python-Django 高级特性-Django 缓存(一)
- Django REST Framework-视图集类型(一)
- Django REST Framework-如何使用视图集(一)
- Django项目部署流程与Nginx安装配置(超详细)
- centos8使用Docker部署Django项目的详细教程
- Django的Models(三)详解大数据
- Django+Vue前后端分离项目的部署详解编程语言
- Django在Win7下的安装及创建项目helloword简明教程