本篇文章主要介绍讲述部署阿里云服务器Django网站环境,并通过IP地址访问网页的过程。写代码过程中往往第一步需要解决的就是配置开发环境,对于新手来说,这是非常头疼的事情,而当配置好之后或者对于老手来说,我们才能去实现理想的功能。基础性文章,希望对您有所帮助,同时文章中存在错误或不足之处,还请海涵~
同时推荐前面作者另外三个Python系列文章。
从2014年开始,作者主要写了三个Python系列文章,分别是基础知识、网络爬虫和数据分析。
系列文章:
[CentOS Python系列] 一.阿里云服务器安装部署及第一个Python爬虫代码实现
[CentOS Python系列] 二.pscp上传下载服务器文件及phantomjs安装详解
[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识
[CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql
[CentOS Python系列] 五.阿里云部署web环境及通过IP地址访问服务器网页
首先打开Putty软件,填写远程IP地址“39.107.105.166”,然后root用户登录,如下图所示。
输入"pip list"指令可以看到已经安装的Django 1.10.6版本,如果您的系统没有安装,则使用pip安装。
第一步 创建Django项目Yangxz
命令:django-admin.py startproject Yangxz
创建Yangxz网站工程,同时使用ls查看工程中所包括的内容,如下图所示。
参考:[python网站开发] 一.Django入门知识及创建第一个网站
第二步 启动项目服务
命令:python manage.py runserver 8090
开启8090端口号,但是报错如下图所示,它提示我们还有配置没有完成,需要我们再配置一下。
[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.
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
如果您还是无法访问如下图所示,则需要设置阿里云的安全组规则,而网上更多的资料忽略了该步骤。下面进行简单叙述:
第一步:打开阿里云服务器管理控制台页面,点击“控制台”按钮
第二步:在弹出的页面中,选择“云服务器ECS”,然后点击我们运行中的服务器
第三步:在弹出如下界面中点击“更多”,选择低端的“安全组配置”
第四步:在“本实例安全组”界面选择“配置规则”。
第五步:点击“添加安全组规则”。
第六步:在“添加安全组规则”中选择自定义TCP协议,端口号为8090端口,授权对象为“0.0.0.0/0”,表示允许任意公网IP登录。
第七步:输入命令“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文件。
第八步:修改Yangxz.settings.py文件,在 ALLOWED_HOSTS=['*'] 中增加 *。
命令:vim settings.py
此时我们访问地址“http://39.107.105.166:8090/”能成功访问,表示我们的Django安装成。
Django网站目录如下:
|-- Yangxz
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
|
`-- db.sqlite3
`-- manage.py
#-*- coding:utf-8 -*-
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello CSDN, My name is Eastmount!")
自定义hello方法,参数request固定的,用于返回HttpResponse。
第二步 配置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)
]
代码如下所示:第三步 网站展示
代码需要导入views文件内容,才能引用hello方法。views.py视图文件在编译后会产生对应的views.pyc文件。然后启动Django服务器,在浏览器中访问即可,如下图所示:
如果没有该资源也不会报错“无法访问”,而是提示无法找到该资源,如下所示。
6.最后访问的时候注意资源及文件名是否正确即可。
希望文章对你有所帮,如果文章中存在不足或错误的地方,还请海涵~
(By:Eastmount 2018-03-13 下午6点 http://blog.csdn.net/eastmount/ )