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知识库 -> 安装 Django 在 Amazon Linux 2-Day 04 -> 正文阅读

[Python知识库]安装 Django 在 Amazon Linux 2-Day 04

安装 Django 在 Amazon Linux 2-Day 04

因为鱼类辨识系统会使用到 Python 来进行训练跟预测,而这些功能都是会在后端完成,为了考虑与后端的 YOLO 的整合,所以选择一个后端的 Python 开发框架,因为所需要的功能并不复杂,Flask 与 Django 都是可以参考的对象后来考虑这项项目对于后端的需求如下:

  • 可以实作 RESTful Web Service
  • 可以实作跨域共享(Cross-origin resource sharing,CORS),这主要是因为需要提供手机存取
  • 可以存取数据库
  • 可以协同开发,多人同时进行
  • 可以结合 YOLO 辨识系统
  • 可以结合原有网页服务器,如 apache,nginx 等

基于以上考察,后来选择使用 Django 这个网站框架,Django 使用 Python 语言编写,是一个广受欢迎、且功能完整的服务器端网站框架。接下来将逐步完成Django的安装跟配置。

安装Django

Django 是依附在 Python 之下,所以并不限定操作系统,不管是 Linux,Mac OS,或是 Windows,而 Python 2 或 Python 3 都可以安装,但是 Python 2.7 不能与 Django 2.0 一起使用,Django 1.11.x 系列是最后一个支持 Python 2.7 的系列。
在数据库的支持下,Django 支持四个主要数据库:PostgreSQL,MySQL,Oracle 和 SQLite,Django 默认配置为使用 SQLite。但这些限制并不是强迫的限制,毕竟它是基于 Python 所建立的框架,所以还是有弹性的,可以为其他的 SQL 和 NOSQL 数据库,提供不同级别的支持。
有三个管道可以取得 Django:

  • 透过Python套件仓储 PyPi,使用 pip/pip3 工具,这是获取最新稳定版本的 Django 的最佳方式.
  • 使用操作系统内所内置的的软件包管理工具,如 yum 或是 conda 等。
  • 从 Django 的官方站点下载原始代码进行安装,这不是推荐给初学者。

因为这个项目的主机是来自 AWS 是先安装好的 AMI 镜像档,所以需要先确认镜像中的 Python 版本,此外在安装上强烈建议使用虚拟环境安装,这样有助于将来项目的移植。

先检查 Python 与 pip 的版本,因为考虑项目的兼容性,预设都会安装多个 Python 版本,登录 EC2 主机,输入以下指令确认目前主机 (AWS Deep Learning AMI(Amazon Linux 2)version:49) 内的 Python 安装情形

python -V
python3 -V
pip -V
pip3 -V

由下图检视执行结果可以发现 EC2 主机安装了两个不同版本的 Python,而安装工具 pip/pip3 也分别对应到不同的版本的 Python,而我们需要的是将 Django 安装在 python3 的环境下,本次项目会专门创建一个虚拟环境来安 Django 以及后续所需要的套件。

在这里插入图片描述
图1、检视 AWS EC2 的 python 安装情形

虚拟环境搭建是在 PEP 405 中制定,这个 PEP 提议向 Python 添加一种轻量级「虚拟环境」机制,该环境具有自己的站点目录,可以选择与系统站点目录隔离。每个虚拟环境都有自己的 Python 二进制文件,允许使用各种 Python 版本创建环境,并且可以在其站点目录中有自己独立的已安装 Python 套件,但是与已安装的 Python 基础共享标准库。

虚拟环境是个观念,而实现这个观念的工具在 Python 2 是 virtualenv,Python 3 是 venv,它允许我们创建独立的 Python 环境。
使用虚拟环境可以为我们的 Python 应用程序创建隔离环境,并允许在该隔离环境中安装 Python 套件,而不是全局安装它们。归纳当然使用虚拟环境有几个优点:

  • 不同项目可以使用不同版本的相同套件,且不互相影响。
  • 启动虚拟环境后,pip 安装的套件会被放在虚拟环境中,每个项目就可以拥有一个独立的环境。
  • 套件版本升级时不会影响到其他的项目。
  • 在没有权限的情况下安装新套件。

如果使用的是Python 3.3或更高版本,venv模块是创建和管理虚拟环境的首选方式,并已经内置在套件中,所以可以不用再安装,而目前ec2内的python版本是3.7,所以可以不用安装虚拟环境套件,透过以下指令我们逐步创建虚拟环境fishRecognition,激活并进入虚拟环境,更新虚拟环境中的pip3安装工具,安装django,检视安装路径,最后再透过deactivate离开虚拟环境。透过检视虚拟环境的动作,下图显示操作结果。我们可以发现,所谓虚拟环境就是会把所需要的套件都安装在指定目录下。

python3 -m venv fishRecognition
source fishRecognition/bin/activate
python3 -m pip install --upgrade pip
pip3 install django
ls -la /home/ec2-user/fishRecognition/lib64/python3.7/site-packages/
deactivate

在这里插入图片描述
图2、建立虚拟环境并安装 Django

为了让每次登录 EC2 都能自动激活 fishRecognition 的虚拟环境,所以修改 .bashrc ,在命令列输入以下指令。

cd
vi .bashrc

在 vi 编辑器中,在文档后面新增以下指令叙述,完成后存盘离开,如下图所示,下次登录后就会自动激活虚拟环境。

# fishRecognition initialize
. /home/ec2-user/fishRecognition/bin/activate

在这里插入图片描述
图3、修改 .bashrc 设定档,自动进入 Python 虚拟环境

执行Django

接下来执行 Django,首先先建立一个项目,输入下述指令,但先不要执行该项目,要先修改一些设定。

# 进入虚拟环境目录
cd ~/fishRecognition
# 建立一个Django项目fishsite
django-admin startproject fishsite
# 进入项目目录
cd fishsite

下图显示项目所生成的档案结构,可以看出 Django 项目除了会建立一个与项目名称相同的目录名称 fishsite 外,也会在该目录下再生成一个相同名称 fishsite 的预设模块,而这个目录下有一个 settings.py 的档案,是 Django 的配置档案。

在这里插入图片描述
图4、Django 项目的档案结构

不要立即启动 Django 的 Web 服务器,因为它会执行很多预设的初始化动作,比方说数据库的初始化,而 Django 预设的数据库是 SQLite,这会导致一些版本不兼容的错误讯息,先编辑 settings.py 档,将数据库设定,允许外部联机设定以及语系和时区修改一下

settings.py

# 允许任何主机从外部联机设定
# DEBUG = True
DEBUG = False

# ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']

# 数据库设定,注释预设数据库
DATABASES = {
    'default': {
#        'ENGINE': 'django.db.backends.sqlite3',
#        'NAME': BASE_DIR / 'db.sqlite3',
    }

# 将预设英语语系与时区修改成繁体中文与台北时区
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hant'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Taipei'

因为 Django Web 服务器预设的端口号是 8000,所以需要开放AWS EC2的安全群组(Security group)。进入EC2的管理控制台,点击左手边的 实例 后,选择本项目的 EC2 个体,下方会出现实例的详细信息,提取 安全性 页签,就可以看到目前所配置的安全群组,如下图所示。

在这里插入图片描述
图5、AWS EC2 控制台中的安全群组标签

进入安全群组设定画面后,新增一个传入规则,类型为 自定义TCP,连接埠范围指定为 8000,来源指定为 Anywhere-IPv4,确认后点击 储存规则 就可以,如下图所示。

在这里插入图片描述
图6、新增安全群组的传入规则

这时候就可以启动 Django Web 服务器,请确认在 /home/ec2-user/fishRecognition/fishsite 这个目录下执行下列的指令。

python3 manage.py runserver 0.0.0.0:8000

执行成功应该会看到以下的画面,会显示 Starting development server at http://0.0.0.0:8000 这个信息。

在这里插入图片描述
图7、启动 Django Web 服务器

接着打开浏览器输入 http:[EC2_IPv4]:8000/admin/,[EC2_IPv4]指的是EC2的公有IPv4地址。就会出现要求登入的画面,如下图所示,这表示Django Web服务器已经成功启动,并可以被浏览器存取到。

在这里插入图片描述
图8、Django 的登录画面

參考資料

  • Django网站框架(Python),https://developer.mozilla.org/zh-TW/docs/Learn/Server-side/Django
  • Django documentation 3.2,https://docs.djangoproject.com/en/3.2/
  • Django3.1教程,https://www.liujiangblog.com/course/django/2
  • 埋坑:Django多国语言,https://lililala.medium.com/埋坑实验室-django-多国语言-ef73f359332e
  • 配置,https://docs.djangoproject.com/zh-hans/3.2/ref/settings/
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:47:35  更:2021-10-27 12:48:08 
 
开发: 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/15 22:59:24-

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