IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 1. Django 项目创建 -> 正文阅读

[Python知识库]1. Django 项目创建

更好的阅读体验 \color{red}{更好的阅读体验} 更好的阅读体验



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 为服务器的公网 ip8000 为接入的端口。

首次打开会提示需要将 xx.xx.xx.xxip 加入到 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" 输出在该页面中。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:52:05  更:2022-10-31 11:55:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 1:58:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码