datawhale组队学习Django—day00&day01

基础软件

  1. Typora
  2. Vmware 虚拟机
  3. Ubuntu 镜像
  4. Vscode
  5. 向日葵远程连接
  6. 宝塔

安装Ubuntu

这一部分可以和这一期的另一门课程Linux基础结合起来

因为是使用Vmware进行的安装,和Linux基础又有一些不一样。

总而言之过程并不麻烦,一直点点点,设置好账户密码就可以了。

Ubuntu内操作

在terminal中输入

ip a
# 得到本机地址

在这里插入图片描述

sudo apt install net-tools
# 更新网络工具包
ifconfig
# 得到本机地址 172.16.48.2

在这里插入图片描述
尝试在本地模式ping一下虚拟机中的地址

(base) mac@MacBook-Pro ~ % ping 172.16.48.2
PING 172.16.48.2 (172.16.48.2): 56 data bytes
64 bytes from 172.16.48.2: icmp_seq=0 ttl=64 time=0.451 ms
64 bytes from 172.16.48.2: icmp_seq=1 ttl=64 time=0.678 ms
64 bytes from 172.16.48.2: icmp_seq=2 ttl=64 time=0.448 ms
64 bytes from 172.16.48.2: icmp_seq=3 ttl=64 time=0.403 ms
64 bytes from 172.16.48.2: icmp_seq=4 ttl=64 time=0.636 ms
64 bytes from 172.16.48.2: icmp_seq=5 ttl=64 time=0.649 ms
64 bytes from 172.16.48.2: icmp_seq=6 ttl=64 time=0.692 ms
64 bytes from 172.16.48.2: icmp_seq=7 ttl=64 time=0.420 ms
64 bytes from 172.16.48.2: icmp_seq=8 ttl=64 time=0.448 ms
64 bytes from 172.16.48.2: icmp_seq=9 ttl=64 time=0.591 ms
64 bytes from 172.16.48.2: icmp_seq=10 ttl=64 time=0.649 ms
64 bytes from 172.16.48.2: icmp_seq=11 ttl=64 time=0.691 ms
64 bytes from 172.16.48.2: icmp_seq=12 ttl=64 time=0.478 ms
64 bytes from 172.16.48.2: icmp_seq=13 ttl=64 time=0.277 ms
64 bytes from 172.16.48.2: icmp_seq=14 ttl=64 time=0.458 ms
64 bytes from 172.16.48.2: icmp_seq=15 ttl=64 time=0.562 ms
64 bytes from 172.16.48.2: icmp_seq=16 ttl=64 time=0.384 ms
64 bytes from 172.16.48.2: icmp_seq=17 ttl=64 time=0.305 ms
64 bytes from 172.16.48.2: icmp_seq=18 ttl=64 time=0.591 ms
64 bytes from 172.16.48.2: icmp_seq=19 ttl=64 time=0.678 ms
64 bytes from 172.16.48.2: icmp_seq=20 ttl=64 time=0.286 ms
64 bytes from 172.16.48.2: icmp_seq=21 ttl=64 time=0.664 ms
64 bytes from 172.16.48.2: icmp_seq=22 ttl=64 time=0.663 ms
64 bytes from 172.16.48.2: icmp_seq=23 ttl=64 time=0.646 ms
64 bytes from 172.16.48.2: icmp_seq=24 ttl=64 time=0.402 ms
64 bytes from 172.16.48.2: icmp_seq=25 ttl=64 time=0.437 ms
64 bytes from 172.16.48.2: icmp_seq=26 ttl=64 time=0.613 ms
64 bytes from 172.16.48.2: icmp_seq=27 ttl=64 time=0.457 ms
64 bytes from 172.16.48.2: icmp_seq=28 ttl=64 time=0.392 ms
64 bytes from 172.16.48.2: icmp_seq=29 ttl=64 time=0.707 ms
64 bytes from 172.16.48.2: icmp_seq=30 ttl=64 time=0.663 ms
64 bytes from 172.16.48.2: icmp_seq=31 ttl=64 time=0.483 ms
64 bytes from 172.16.48.2: icmp_seq=32 ttl=64 time=0.391 ms
64 bytes from 172.16.48.2: icmp_seq=33 ttl=64 time=0.343 ms
64 bytes from 172.16.48.2: icmp_seq=34 ttl=64 time=0.629 ms
64 bytes from 172.16.48.2: icmp_seq=35 ttl=64 time=0.283 ms
64 bytes from 172.16.48.2: icmp_seq=36 ttl=64 time=0.672 ms
64 bytes from 172.16.48.2: icmp_seq=37 ttl=64 time=0.435 ms
64 bytes from 172.16.48.2: icmp_seq=38 ttl=64 time=0.453 ms
64 bytes from 172.16.48.2: icmp_seq=39 ttl=64 time=0.381 ms
64 bytes from 172.16.48.2: icmp_seq=40 ttl=64 time=0.751 ms
64 bytes from 172.16.48.2: icmp_seq=41 ttl=64 time=0.574 ms
64 bytes from 172.16.48.2: icmp_seq=42 ttl=64 time=0.456 ms
64 bytes from 172.16.48.2: icmp_seq=43 ttl=64 time=0.489 ms
64 bytes from 172.16.48.2: icmp_seq=44 ttl=64 time=0.445 ms
64 bytes from 172.16.48.2: icmp_seq=45 ttl=64 time=0.297 ms
64 bytes from 172.16.48.2: icmp_seq=46 ttl=64 time=0.594 ms
64 bytes from 172.16.48.2: icmp_seq=47 ttl=64 time=0.450 ms
64 bytes from 172.16.48.2: icmp_seq=48 ttl=64 time=0.677 ms
64 bytes from 172.16.48.2: icmp_seq=49 ttl=64 time=0.675 ms

ssh连接

尝试用ssh连接,因为在ubuntu中可能没有开启ssh服务或者没有安装,所以连接失败。

(base) mac@MacBook-Pro ~ % ssh mac@172.16.48.2
ssh: connect to host 172.16.48.2 port 22: Connection refused

什么是ssh

网络已经忘的差不多了。。。补充一下知识。

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。

ssh本身提供两种级别的验证方法:

1、只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。

2、你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

原文链接:SSH简介及两种远程登录的方法

ubuntu安装ssh服务

如果只是想远程登录别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

sudo apt-get install openssh-server

安装完之后,为了以防万一,设置一下防火墙,允许ssh服务

sudo ufw allow ssh

启动服务器的SSH服务

1、一种查看ssh服务状态的方式

systemctl status ssh

每次我用这句就会退出不了,忘记截图了,用了tango的截图
在这里插入图片描述
2、另一种查看ssh服务状态的方式
在这里插入图片描述
如图,sshd表示已经启动了。如果没有启动,可以使用如下命令启动

sudo /etc/init.d/ssh start

sudo /etc/init.d/ssh stop  #server停止ssh服务 
sudo /etc/init.d/ssh restart  #server重启ssh服务

ssh本地连接ubuntu

ssh mac@172.16.48.2

在这里插入图片描述
既然可以从本地直接连接,那么之后的操作是可以直接使用ssh连接访问,不需要再在虚拟机中进行操作,只用打开就行。

另:windows10可以在商店里搜索到Ubuntu 20.04 LTS进行安装。

vscode部署ubuntu

remote - SSH安装

在vs code的插件中安装remote - SSH,安装完成之后左边就会出现一个小的显示器图标
在这里插入图片描述

连接ubuntu

点开之后有一个小的+号
在这里插入图片描述
在这里插入图片描述
下一个选项选第一个!忘记截图了哈,点设置这个小图标,仍然是选择第一个配置文件,可以修改它的名字,这里改成了Django。
在这里插入图片描述
下一步,新开了一个窗口,点那个小图标,就会出现一个新窗口。
在这里插入图片描述
之后它会自动通过ssh在ubuntu中安装一些vscode的插件,出现以下画面表示已经安装完了。
在这里插入图片描述
接下来我们尝试在桌面创建文件夹。

cd Desktop
mkdir DjangoDev

这时候再点击Open Folder就可以发现已经创建成功啦
在这里插入图片描述

python环境

ubuntu自带python3.8.5

vscode在ubuntu写代码

操作稍微调整了一下顺序,没有跳来跳去的感觉。

环境配置

需要安装Pylance及Django插件
在这里插入图片描述
在这里插入图片描述
通常在开发的过程中,我们会在项目中新建一个虚拟环境,防止污染到其他项目。

mkdir env
cd env
python3 -m venv .# 因为没有这个,所以还要再安装一下
sudo apt-get install python3-venv
python3 -m venv . # 再运行一次

在这里插入图片描述
再激活环境

mac@ubuntu:~/Desktop/DjangoDev/env$ source bin/activate
(env) mac@ubuntu:~/Desktop/DjangoDev/env$

代码运行

新建文件夹demo及demo.py
在这里插入图片描述
切换到demo文件夹下,运行demo.py

(env) mac@ubuntu:~/Desktop/DjangoDev$ cd demo
(env) mac@ubuntu:~/Desktop/DjangoDev/demo$ python3 demo.py
Django

Django环境配置

# 下载Django的包,版本为3.2.4
pip install Django -i https://mirrors.aliyun.com/pypi/simple/

Django简单使用

# 新建一个项目
django-admin startproject MyWeb

这时在目录列表就会出现一个MyWeb的文件夹。

cd MyWeb/
python manage.py runserver

之后会弹出一个提示框提示open in Browser
在这里插入图片描述
这里发现地址和我们的本地地址并不一致。如果我们直接将地址改为172.16.48.2:8000,会出现web错误。因此需要重新配置一下

打开MyWeb文件夹下的MyWeb文件夹中的settings.py,找到以下位置,把我们自己的地址添加进行,本来ALLOWED_HOSTS里是空的。(如果没有*则原始的网站,就是上面那个图会报错)
在这里插入图片描述
这次再运行下面的指令

python manage.py runserver 0.0.0.0:8000

在这里插入图片描述
一个简单的Django就搭建好啦。

最后再安装一下宝塔,用于管理Ubuntu中的包,安装成功后的这个信息要保存一下。

# 安装
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
Congratulations! Installed successfully!

外网面板地址: http://222.245.252.232:8888/622b9cc8
内网面板地址: http://172.16.48.2:8888/622b9cc8
username: 
password: 
If you cannot access the panel,
release the following panel port [8888] in the security group

若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口

点开内网链接,输入账户和密码之后
在这里插入图片描述
进入面板设置,修改密码

然后下载我们需要用的软件!MySQL和什么。


day01的部分

出大问题,过了一天之后,ip a查不到ip地址
网上查了几个方案,没有用,最后重启了VMware和ubuntu,好啦。

环境再检查

再在vscode里面远程连接ubuntu,需要输入密码,然后打开上次的文件夹。其中的demo和Myweb都不是必须的文件,用完就可以删的意思。
创建一个src文件夹,并在下面创建pycode和html两个文件夹,待会儿进行基础知识的学习
在这里插入图片描述
切换至上次配置好的虚拟环境
在这里插入图片描述

Python基础知识

(env) mac@ubuntu:~/Desktop/DjangoDev$ cd src
(env) mac@ubuntu:~/Desktop/DjangoDev/src$ cd pycode
(env) mac@ubuntu:~/Desktop/DjangoDev/src/pycode$ 

在代码窗口右键,选中在交互窗口中运行当前文件
在这里插入图片描述
这样,在右侧窗口中会出现类似notebook的交互窗口,同时,也可以在左侧输入#%%运行代码块
在这里插入图片描述

数据类型

跳过了。

主要介绍了字符串、简单的数学运算、list和tuple的特性及增删、dictionary的特性及增删、list的切片

流程控制

主要介绍了 if else,for,布尔运算。

函数

非常简单的回顾了一下。

HTML基础

先安装一下html的插件,安装完后需要把右下角的Django HTML 改成 HTML
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个live server怎么用呢。

在右下角会有一个端口号。在这里插入图片描述

然后在ubuntu中的浏览器地址中输入http://172.16.48.2:5500/src/html/index.html,就能进行预览了

如果想直接在本地也可以进行预览,需要在防火墙把端口5500添加进去

(env) mac@ubuntu:~/Desktop/DjangoDev$ sudo ufw status
[sudo] password for mac: 
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
20/tcp                     ALLOW       Anywhere                  
21/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
888/tcp                    ALLOW       Anywhere                  
8888/tcp                   ALLOW       Anywhere                  
39000:40000/tcp            ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)             
20/tcp (v6)                ALLOW       Anywhere (v6)             
21/tcp (v6)                ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
888/tcp (v6)               ALLOW       Anywhere (v6)             
8888/tcp (v6)              ALLOW       Anywhere (v6)             
39000:40000/tcp (v6)       ALLOW       Anywhere (v6)             

(env) mac@ubuntu:~/Desktop/DjangoDev$ sudo ufw allow 5500
Rule added
Rule added (v6)
(env) mac@ubuntu:~/Desktop/DjangoDev$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
20/tcp                     ALLOW       Anywhere                  
21/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
888/tcp                    ALLOW       Anywhere                  
8888/tcp                   ALLOW       Anywhere                  
39000:40000/tcp            ALLOW       Anywhere                  
5500                       ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)             
20/tcp (v6)                ALLOW       Anywhere (v6)             
21/tcp (v6)                ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
888/tcp (v6)               ALLOW       Anywhere (v6)             
8888/tcp (v6)              ALLOW       Anywhere (v6)             
39000:40000/tcp (v6)       ALLOW       Anywhere (v6)             
5500 (v6)                  ALLOW       Anywhere (v6)             

(env) mac@ubuntu:~/Desktop/DjangoDev$ 

这样在本地也可以进行预览了。比较有意思的是,这种预览会在保存之后马上更新,不用再重新打开网页或者刷新。

HTML文件基本组成

<html>
    <head>
        <script>
            function test(){
                alert('123!')
            }
        </script>
    </head>


    <body>
        <p>一段文字</p>
        <br>
        <table>
            <tr>
                <td>1</td>
                <td>2</td>
            </tr>
            <tr>
                <td>3</td>
                <td>4</td>
            </tr>
        </table>

        <a href="http://www.baidu.com">Baidu</a>

        <div >

        </div>
        <input type = "text" value = "123" />
        <input type="button" value="提交" />

    </body>
</html>

主要也是介绍了一些html body和head中的内容,以及一点点交互

通过宝塔上传已有的文件

这里我们有一个模板,想在我们的服务器上使用它,

下载链接:https://github.com/datawhalechina/team-learning-program/tree/master/Django/%E9%A1%B5%E9%9D%A2%E6%A8%A1%E6%9D%BF

我们使用宝塔进行上传,选择文件,目录地址如下图所示,将我们下载的安装包拖进去。
在这里插入图片描述
在这里插入图片描述
然后我们在本地浏览器地址行输入:http://172.16.48.2:5500/src/html/site/index.html
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值