Django学习笔记-配置Docker、Git环境与项目创建

news2024/11/23 23:41:34

笔记内容转载自AcWing的Django框架课讲义,课程链接:AcWing Django框架课。

CONTENTS

    • 1. 配置Docker环境
    • 2. Django项目创建
    • 3. Django App创建

1. 配置Docker环境

首先拉取一个 Ubuntu 镜像:

docker pull ubuntu:20.04

创建容器后进入容器配置基本环境并创建用户:

docker run -p 20000:22 -p 8000:8000 --name ubuntu_django -itd ubuntu:20.04
docker attach ubuntu_django
apt-get update
apt-get install vim
apt-get install tmux
apt-get install tree
apt-get install silversearcher-ag
apt-get install openssh-server
adduser asanosaki
usermod -aG sudo asanosaki
exit

然后去云服务器官网放行20000端口和8000端口:

在这里插入图片描述

通过 SSH 远程连接容器:

ssh asanosaki@localhost -p 20000

在这里插入图片描述

如果出现 kex_exchange_identification: read: Connection reset by peer 报错,就去进入容器的根用户下编辑 hosts.allow 文件:

vim /etc/hosts.allow

在文件中添加一行:sshd: ALL,然后重启 SSH 服务:service ssh restart

进入容器根用户安装剩余的环境:

apt-get update
apt-get install python3
apt-get install python3-pip
apt-get install git
pip install Django
pip install uwsgi
pip install supervisor

查看 Django 版本:

django-admin --version

2. Django项目创建

通过以下命令创建一个 Django 项目:

django-admin startproject djangoapp

将项目上传至 Git(注意需要先在容器中生成公钥,并在 Git 中添加公钥):

cd djangoapp/
git init
git config --global user.name "xxx"
git config --global user.email "xxx@qq.com"
git add .
git commit -m "initial project"
git remote add origin git@git.acwing.com:<用户ID>/<仓库名>.git
git push --set-upstream origin master

尝试启动一下项目:

python3 manage.py runserver 0.0.0.0:8000

这时候访问一下网址:http://<云服务器的公网IP>:8000/,会看到提示:Invalid HTTP_HOST header: '<云服务器的公网IP>:8000'. You may need to add '<云服务器的公网IP>' to ALLOWED_HOSTS.,这是因为 Django 是个很安全的框架,会自动屏蔽很多可疑的访问,我们需要将公网 IP 添加到 ALLOWED_HOSTS 中:

cd djangoapp/  # 此时在 ~/djangoapp/djangoapp 中
找到 ALLOWED_HOSTS = [],改为 ALLOWED_HOSTS = ["<公网IP>"]  # 注意要用引号

Tips:如果找不到 ALLOWED_HOSTS 可以使用 ag 命令查找:

ag ALLOWED_HOSTS

现在即可成功访问网址:

在这里插入图片描述

此时会看到项目文件夹下出现了一个 __pycache__ 目录,这个是预编译好的一些文件,用于加速 Python 运行,我们在往 Git 上传代码时最好不要上传这些中间文件,我们可以在仓库的根目录下添加一个 .gitignore 文件,文件内容如下:

*/__pycache__

最后上传至 Git:

git add .
git commit -m "modify ALLOWED_HOSTS"
git push

3. Django App创建

在上一节中启动的页面为 Django 的默认页面,我们在开发时需要创建一个新的 App 写自己的页面,首先通过以下指令创建一个名为 game 的 App,创建好后当前目录下会生成一个名为 game 的目录:

python3 manage.py startapp game

git add .
git commit -m "init app game"
git push

此时启动 runserver 指令时会发现出现了报错:You have 18 unapplied migration(s). Your project may not work properly ......,原因是有一部分的数据库修改还没有同步到数据库里,运行以下指令同步数据库的修改:

python3 manage.py migrate

打开 http://<公网IP>:8000/admin/ 页面可以看到 Django 自带的管理员页面,我们可以创建管理员用户(假设用户名和密码都为 admin):

python3 manage.py createsuperuser

然后即可登录管理员账户进入管理员界面:

在这里插入图片描述

我们再回过头来进入之前创建的 App 中,能看到有几个比较重要的文件:models.pyviews.py,我们先手动创建剩余的比较重要的文件:

touch urls.py
mkdir templates

接下来整个项目需要操作的就这四个文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/625013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Splunk:构建安全监控解决方案(第 1 部分)

在我的网络安全训练营的最后几周&#xff0c;我们的最终项目之一是使用 Splunk Enterprise 为一个名为 VSI&#xff08;虚拟空间工业&#xff09;的虚构组织构建安全监控环境&#xff0c;对于那些可能不知道的人来说&#xff0c;它是一个 SIEM&#xff08;安全信息和事件管理器…

科一容易忘、容易混的点——图类

注意行人 和 人行横道区别 注意行人&#xff1a;黄色&#xff0c;里面是什么就注意什么 人行横道&#xff1a;正方形 “不得” xxx 的 就选择 【正确】 点火开关 1、LOCK档&#xff1a;这是一个锁止档&#xff0c;功能是当除了防盗系统和车内小灯以外&#xff0c;电路是完全关…

【Redis应用】用户签到统计连续签到(三)

&#x1f697;Redis应用学习第三站~ &#x1f6a9;本文已收录至专栏&#xff1a;Redis技术学习 签到功能是我们非常常见的一个功能&#xff0c;几乎在每个app中都能碰到&#xff0c;让我们一起看看如何实现吧~ 一.BitMap用法引入 我们针对签到功能完全可以通过mysql来完成&am…

Python基于指定范围筛选并剔除Excel表格中的数据

本文介绍基于Python语言&#xff0c;读取Excel表格文件&#xff0c;基于我们给定的规则&#xff0c;对其中的数据加以筛选&#xff0c;将不在指定数据范围内的数据剔除&#xff0c;保留符合我们需要的数据的方法。 首先&#xff0c;我们来明确一下本文的具体需求。现有一个Exce…

【JavaScript】讲解JavaScript的基础知识并且配有案例讲解

&#x1f38a;专栏【 前端易错合集】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 目录 &#x1f381;JavaScript嵌入网页的方式 &#x1f354;a…

LVS--DR集群部署

LVS--DR集群 一、DR模式原理二、实验 一、DR模式原理 原理&#xff1a;首先负载均衡器接收到客户的请求数据包时&#xff0c;根据调度算法决定将请求发送给哪个后端的真实服务器&#xff08;RS&#xff09;。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真…

PCI Express架构概述

目录 1. PCIe 总线概述 2. PCIe 拓扑结构 3. PCIe 分层结构 4. PCIe 事务层类型 5. PCIe 配置和地址空间 1. PCIe 总线概述 PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;是一种用于连接计算机内部硬件设备的高速串行总线。它是在PCI&#xff08…

在Windows 11 中安装和使用 WSL 2

文章目录 列出可安装的发行版/分发安装WSL 2常用命令显示帮助启动分发从powershell中退出分发关闭正在运行的分发立即终止所有正在运行的分发和 WSL 2轻型虚拟机。更新wsl 使用VSCode连接WSL设置代理换源WSL 与 Windows 11 共享文件导入、导出 WSL 发行版导出导入 安装Docker E…

Nacos架构与原理 - 总体架构

文章目录 Nacos 起源Nacos 定位Nacos 优势Nacos 生态Nacos 总体设计设计原则架构图用户层业务层内核层插件 小结 Nacos 起源 Nacos 在阿里巴巴起源于 2008 年五彩石项目&#xff08;完成微服务拆分和业务中台建设&#xff09;&#xff0c;成长于十年双十⼀的洪峰考验&#xff…

【大数据之路1】Hadoop 入门

1. Hadoop 入门 1. 大数据概述1. 大数据相关说明2. Hadoop 及大数据生态圈3. Hadoop 核心组件4. Hadoop 生态圈5. 集群安装模式6. Hadoop 运行模式7. Hadoop 工作流程8. Hadoop 的推行策略9. 知识点 2. Hadoop 启动与服务名1. Hadoop&#xff08;HDFS/YARN&#xff09;启动2. H…

区间预测 | MATLAB实现基于QRCNN-BiGRU卷积双向门控循环单元多变量时间序列区间预测

区间预测 | MATLAB实现基于QRCNN-BiGRU卷积双向门控循环单元多变量时间序列区间预测 目录 区间预测 | MATLAB实现基于QRCNN-BiGRU卷积双向门控循环单元多变量时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRCNN-BiGRU卷积神经…

数据结构4:二叉树

目录 1.树概念及结构 1.1树的概念 1.3树的表示 1.4树在实际中的运用&#xff08;表示文件系统的目录结构&#xff09; 2.二叉树的概念及结构 2.1概念 2.2现实中的二叉树&#xff1a; 2.3特殊的二叉树&#xff1a; 2.4 二叉树的性质 2.5二叉树的存储结构 1.顺序结构 …

如何用 10 种策略改进 ChatGPT 的人工智能

你是否曾有过和AI机器人交互无果的经历&#xff1f;或许只是因为提示语的问题&#xff01;想要ChatGPT/Bard/Bing Chat等AI机器人更智能、回应更高效? 必须学会AI提示语技巧&#xff01;本文将深入解析如何用精准的语言编写提示&#xff0c;让您的AI聊天机器人更进一步。 为什…

从买卖股票入手谈谈DP Table

动态规划问题主要就是要明确dp函数定义、搞清楚状态以及状态转移方程 构建DP思路解析 状态 188. 买卖股票的最佳时机 IV - 力扣&#xff08;LeetCode&#xff09; 对于股票&#xff0c;我们每天有三种选择 > buy, sell, hold 限制条件有 > 天数限制&#xff08;n&…

Java关键字abstract详解

abstract 1.可以用来修饰&#xff1a;类、方法 2.具体的&#xff1a; abstract修饰类&#xff1a;抽象类 抽象类不能实例化 抽象类中一定有构造器&#xff0c;便于子类实例化时调用&#xff08;涉及&#xff1a;子类对象实例化的全过程&#xff09;。 开发中&#xff0c;都会提…

(转载)基于蚁群算法的旅行商问题(TSP)求解(matlab实现)

蚁群算法(ant colony algorithm,ACA)是由意大利学者M.Dorigo等人于20世纪90年代初提出的一种新的模拟进化算法&#xff0c;其真实地模拟了自然界蚂蚁群体的觅食行为。M.Dorigo等人将其用于解决旅行商问题(traveling salesman problem,TSP),并取得了较好的实验结果。 近年来&am…

论文精读 —— Invisible Backdoor Attack with Sample-Specific Triggers

文章目录 带有样本特定触发器的隐形后门攻击论文信息论文贡献理解性翻译摘要1. 引言2. 相关工作2.1. 后门攻击2.2. 后门防御 3. 深入了解现有防御4. 样本特定的后门攻击&#xff08;SSBA&#xff09;4.1. 威胁模型4.2. 提出的攻击如何生成样本特定的触发器样本特定的后门攻击流…

linux学习之top命令详解

参考文章 https://blog.csdn.net/langzi6/article/details/124805024 top ​ 第一行&#xff1a;运行时长&#xff0c;负载 top - 10:04:54 up 474 days, 22:16, 2 users, load average: 2.07, 1.60, 0.94 top - 10:04:54&#xff1a;当前时间。 up 474 days, 22:16&#…

redis与分布式锁浅谈

redis与分布式锁浅谈 1.高并发下缓存失效问题 1.1 缓存穿透&#xff1a; 缓存穿透&#xff1a;指查询一个一定不存在的数据&#xff0c;由于缓存是不命中&#xff0c;将去查询数据库&#xff0c;但是数据库也无此记录&#xff0c;我们没有将这次查询的null写入缓存&#xff0…

windows禁用输入法

Rime 呼出菜单的快捷键 ctrl grave 跟 vs code 呼出底部命令行的快捷键冲突了&#xff0c;每次用 vs code 时都会用 ctrl space 将输入法禁用&#xff0c;让它变成一个圈叉&#xff1a; 由 [1]&#xff0c;这个快捷键是 windows 系统禁用输入法的快捷键&#xff0c;在 Setti…