[CentOS Python系列] 六.阿里云搭建Django网站详解

简介: 本篇文章主要介绍讲述部署阿里云服务器Django网站环境,并通过IP地址访问网页的过程。基础性文章,希望对您有所帮助。

本篇文章主要介绍讲述部署阿里云服务器Django网站环境,并通过IP地址访问网页的过程。写代码过程中往往第一步需要解决的就是配置开发环境,对于新手来说,这是非常头疼的事情,而当配置好之后或者对于老手来说,我们才能去实现理想的功能。基础性文章,希望对您有所帮助,同时文章中存在错误或不足之处,还请海涵~

系列文章:

一. 创建第一个Django网站

首先打开Putty软件,填写远程IP地址“39.107.105.166”,然后root用户登录,如下图所示。

image.png

输入"pip list"指令可以看到已经安装的Django 1.10.6版本,如果您的系统没有安装,则使用pip安装。

image.png

第一步 创建Django项目Yangxz

  • 命令:django-admin.py startproject Yangxz

创建Yangxz网站工程,同时使用ls查看工程中所包括的内容,如下图所示。

  • 参考:[python网站开发] 一.Django入门知识及创建第一个网站

image.png

第二步 启动项目服务

  • 命令:python manage.py runserver 8090

开启8090端口号,但是报错如下图所示,它提示我们还有配置没有完成,需要我们再配置一下。

image.png

[root@iZ2ze9134z8zlqupc9t6mzZ Yangxz]# ls
manage.py  Yangxz
[root@iZ2ze9134z8zlqupc9t6mzZ Yangxz]# python manage.py runserver 8090
Performing system checks...
 
System check identified no issues (0 silenced).
 
You have 13 unapplied migration(s). Your project may not work properly until you apply 
the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
 
March 13, 2018 - 07:56:34
Django version 1.10.6, using settings 'Yangxz.settings'
Starting development server at http://127.0.0.1:8090/
Quit the server with CONTROL-C.

第三步 解决上述错误

  • 命令:python manage.py migrate

migrate可以让我们在修改Model后可以在不影响现有数据的前提下重建表结构。

image.png

这时你会发现在上一层的hello目录下面多了一个文件dg.sqlite3,此时再调用“python manage.py runserver 8090”命令开启8090端口则成功,如下图所示。

image.png

此时,我们通过“http://39.107.105.166:8090/”访问网站却无法访问,如下图所示。

image.png


二. 配置服务端口号

接下来在CentOS服务器端开通端口号8080,步骤如下:

1.vi /etc/sysconfig/iptables

2.输入字符“i”,进入编辑模式(Insert)

3.加入如下代码,核心: -I INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT

#Firewall configuration written by system-config-firewall
#Manual customization of this file is not recommanded.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT
-I INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

image.png

3.输入“:wq!”保存并退出

4.重启防火墙:service iptables restart

image.png

注意,开放的端口一定要添加到 REJECT 之前。同时,有的教程会让你临时关闭防火墙(如果不关闭,则只能本机访问apache服务),service iptables stop,但作者更推荐重启防火墙即可。


三. 配置阿里云端口号

如果您还是无法访问如下图所示,则需要设置阿里云的安全组规则,而网上更多的资料忽略了该步骤。下面进行简单叙述:

image.png

第一步:打开阿里云服务器管理控制台页面,点击“控制台”按钮

image.png

第二步:在弹出的页面中,选择“云服务器ECS”,然后点击我们运行中的服务器

image.png

第三步:在弹出如下界面中点击“更多”,选择低端的“安全组配置”

image.png

第四步:在“本实例安全组”界面选择“配置规则”。

image.png

第五步:点击“添加安全组规则”。

image.png

第六步:在“添加安全组规则”中选择自定义TCP协议,端口号为8090端口,授权对象为“0.0.0.0/0”,表示允许任意公网IP登录。

image.png

设置成功如下图所示:

image.png

第七步:输入命令“python manage.py runserver 0.0.0.0:8090 &”,最后的 & 符号表示在后台运行该进程。这里的IP地址如果用公网IP会运行不了,而用0.0.0.0则外网和127.0.0.1都能访问。

重点命令:

  • python manage.py runserver 0.0.0.0:8090 &

而此时会报错如下所示,让我们修改Yangxz.settings文件。

image.png

第八步:修改Yangxz.settings.py文件,在 ALLOWED_HOSTS=[''] 中增加

  • 命令:vim settings.py

image.png

第九步:最后再次输入命令“python manage.py runserver 0.0.0.0:8090 &”安装服务。

image.png

此时我们访问地址“http://39.107.105.166:8090/”能成功访问,表示我们的Django安装成。

image.png


四. 修改Django网站源码

Django网站目录如下:

|-- Yangxz
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
|
`-- db.sqlite3
`-- manage.py

说明如下:

  • Yangxz: 项目的容器。
  • manage.py: Django管理主程序。一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • __init__.py: 空文件。告诉Python该目录是一个Python包。
  • settings.py: 主配置文件。该Django项目的设置/配置。
  • urls.py: URL路由文件。Django项目的URL声明,一份由Django驱动的网站"目录"。
  • wsgi.py: 网络通信接口。一个WSGI兼容的Web服务器的入口,以便运行你的项目。

第一步 创建视图views.py文件
在Yangxz目录下创建一个views.py文件,用于书写业务处理逻辑。

  • 命令:touch views.py
  • 命令:vim views.py
#-*- coding:utf-8 -*-
from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello CSDN, My name is Eastmount!")

自定义hello方法,参数request固定的,用于返回HttpResponse。

image.png

第二步 配置URL
修改urls.py文件内容,将访问的内容改为views.py文件中的hello函数。

  • 命令:vim urls.py
from django.conf.urls import url
from django.contrib import admin
from Yangxz.views import *
 
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'yangxz/', hello)
]

代码如下所示:

image.png

第三步 网站展示
代码需要导入views文件内容,才能引用hello方法。views.py视图文件在编译后会产生对应的views.pyc文件。然后启动Django服务器,在浏览器中访问即可,如下图所示:

image.png

如果没有该资源也不会报错“无法访问”,而是提示无法找到该资源,如下所示。

image.png

最后希望这篇文章对您有所帮助,在配置Django时需要注意以下几个常见错误:

  • 1.需要调用 "vi /etc/sysconfig/iptables" 增加服务端口号;
  • 2.需要在阿里云管理安全组中增加8090端口,如果未配置会提示无法访问;
  • 3.通过“python manage.py runserver 0.0.0.0:8090 &”开启服务端口,注意&符号;
  • 4.配置py文件时,需要先导入再使用,如“from Yangxz.views import *”;
  • 5.注意在Yangxz.settings.py文件中修改代码 "ALLOWED_HOSTS=['']",增加
  • 6.最后访问的时候注意资源及文件名是否正确即可。

希望文章对你有所帮,如果文章中存在不足或错误的地方,还请海涵。很高兴重回阿里云,开心能与大家在这里认识,希望能分享更高质量的文章帮助大家,且行且珍惜。

(By:Eastmount 2021-11-10 夜于武汉)

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
146 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
495 29
|
1月前
|
数据采集 前端开发 JavaScript
Python爬虫如何应对网站的反爬加密策略?
Python爬虫如何应对网站的反爬加密策略?
111 11
|
2月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
107 6
|
3月前
|
数据采集 JavaScript Python
如何根据目标网站调整Python爬虫的延迟时间?
如何根据目标网站调整Python爬虫的延迟时间?
|
4月前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
212 6
从零开始:用Python爬取网站的汽车品牌和价格数据
|
4月前
|
关系型数据库 数据库 数据安全/隐私保护
云数据库实战:基于阿里云RDS的Python应用开发与优化
在互联网时代,数据驱动的应用已成为企业竞争力的核心。阿里云RDS为开发者提供稳定高效的数据库托管服务,支持多种数据库引擎,具备自动化管理、高可用性和弹性扩展等优势。本文通过Python应用案例,从零开始搭建基于阿里云RDS的数据库应用,详细演示连接、CRUD操作及性能优化与安全管理实践,帮助读者快速上手并提升应用性能。
|
5月前
|
机器学习/深度学习 人工智能 分布式计算
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
208 35
|
5月前
|
弹性计算 运维 安全
阿里云操作系统迁移最佳实践|飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是阿里云操作系统迁移最佳实践,Alibaba Cloud Linux /Anolis OS 兼容 CentOS 生态,因此能够很丝滑的进行迁移替换。无论是对企业的运维人员,还是对企业操作系统的使用者来说,相对简化了它的维护成本。通过 SMC 操作系统迁移实践带用户深入了解,不仅阐述了原地迁移方案的独特优势,还针对不同的迁移场景,逐步剖析了整个迁移流程,力求使复杂的操作变得直观易懂,实现了真正的“白屏化”体验。 1. CentOS 迁移背景 2. 操作系统迁移实践 3. 迁移故障处理
151 2
|
6月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
436 13

热门文章

最新文章