【网站搭建】云服务器上运行django

       上次已经用阿里云服务器和宝塔面板一键部署了一个网站,可以上传网站源码直接使用了,后端用的PHP。这次记录是在云服务器上运行django的过程。包括python3安装,环境配置和项目创建等,不涉及ngix和uwsgi的配置,后续会有记录。


搭建过程如下:

1 准备工作:

网站搭建前期工作(即上次搭建记录,已有搭建经历可忽略):【网站搭建】用阿里云服务器搭建个人网站

(1) 启动阿里云 “轻量应用服务器”
(2) 打开阿里云控制台开启远程连接
(3) 打开宝塔面板


2 详细过程

(1)安装python3.7.5

CentOS7.3服务器中自带python2,但目前django的资料大多基于python3,因此为了后续使用更加方便,本次搭建建议先安装python3。
打开命令行窗口,输入以下命令,可以先输入sudo -i进入管理员模式

  • 安装C编译器

yum install gcc

  • 下载python3.7.5压缩包,如果下载较慢,可以先在浏览器进入下面的网址下载安装包,然后将安装包上传到宝塔面板的root文件夹下面

wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz

  • 解压

tar -zxvf Python-3.7.5.tgz

  • 打开安装目录

cd Python-3.7.5

  • 启动配置并选择安装路径(/usr/local/python3为安装路径,建议不改)

./configure --prefix=/usr/local/python3

  • 编译和安装(中途可能卡住,请勿输入命令,耐心等待)

make && make install

  • 创建软链接,之后可以直接使用’python3’命令ln -s (原路径) (链接路径),没有提示即创建成功。

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

  • 创建pip3软链接

ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

  • (可跳过,直接进入(2))安装虚拟环境,可以在独立的虚拟环境中运行项目

pip3 install virtualenv
#注意:pip用于安装python2的库,pip3用于安装python3的库

若出现如下提示,可忽略,也可以输入pip3 install --upgrade pip

pip3 install --upgrade pip
List item

  • 创建虚拟环境的软链接,没有提示或出现**“File exists”**即表示成功

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

  • 创建虚拟环境

virtualenv --python=/usr/bin/python3 myvenv
#后面的myvenv为环境名称,建议不修改

  • 进入或退出虚拟环境

source myvenv/bin/activate #进入虚拟环境
deactivate #退出虚拟环境

#提示:以上命令是在python-3.6.5文件夹下执行的,如果没有打开此文件夹,可以输入以下命令:
cd /root/Python-3.6.5 #进入python-3.6.5文件夹
source myvenv/bin/activate #进入myvenv
或直接输入:
source /root/Python-3.6.5/myvenv/bin/activate


(2)安装django
  • 先输入deactivate退出虚拟环境,然后安装

pip3 install django

  • 然后再进入myvenv虚拟环境,再次安装(用pip)

pip install django
#不是pip3,而是pip,进入虚拟环境后去掉python和pip命令后的“3” 。可能因为这本来就是python3的环境,没必要再区分。


(3)创建项目
  • 创建django项目需要用到django-admin命令,先创建其软链接

ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
#类似先前的命令,找到原路径,创立软链接路径(两路径间空格)

  • 先进入存放项目的文件夹(自由选择),我选择**/www/myproject/,先在宝塔面板中的文件夹/www/下创建一个名为myproject**的目录,然后再命令行输入

cd /www/myproject #进入文件夹

  • 之后可直接输入命令创建项目

django-admin startproject HelloWorld
#HelloWorld为项目名称(建议先了解整个流程后再更改)

创建完成,/www/myproject/文件夹下面将会出现一个名为HelloWorld的工程,进入文件夹,又会看到一个HelloWorld文件夹,难道是俄罗斯套娃?(狗头),除此之外,还有一个名为manage.py的文件,以后会经常用到,要习惯它的相关命令。

  • 运行项目

cd HelloWorld
python3 manage.py runserver 0:8000

第一次运行出错,提示为没有配置数据库。如果没有出错请忽略下面步骤,直接在浏览器中输入 “IP地址:8000” ,如果打不开网页,需要在阿里云安全组设置防火墙
配置方式如下:
首先,确保已经建立了一个MySQL数据库,且知道数据库名称和密码,可以在宝塔面板数据库选项查看。
然后打开HelloWorld(第二个)工程文件夹,编辑settings.py文件
76行DATABASES改成如下

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }#以前的配置
    'default': {
    'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
    'NAME': 'name', #数据库名
    'USER': 'name', #用户名,宝塔面板数据库选项可查看
    'PASSWORD': 'password', #数据库密码
    'HOST':'Localhost', #默认,若改了这个,数据库的也要改
    'PORT':'3306', #端口,默认
    }
}

settings.py文件第28行ALLOWED_HOSTS=[]加入服务器IP

ALLOWED_HOSTS = ['180.25.91.166'] #[]内填服务器IP(公)

然后保存并返回命令行窗口,安装mysqlclient

pip3 install mysqlclient #虚拟环境中使用pip

然后启动服务

python3 manage.py runserver 0:9090
#虚拟环境中可以去掉“3”,如果嫌麻烦也可以先不使用虚拟环境,直接在原环境搭建,知道如何进入和退出虚拟环境即可。

结果就一直在这个画面
在这里插入图片描述
可能是因为端口没开,先进入阿里云控制台打开9090和3306的tcp端口,然后输入如下命令打开端口

firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload #最后一定要重启

再次启动服务

python3 manage.py runserver 0:9090 #启动服务器,且端口为9090

浏览器打开101.24.97.334:9090,即 “你的IP:9090"。

(4)成功,小火箭起飞!

在这里插入图片描述

4 记录一些常见错误以及解决方法

(1)错误一: DisallowedHost at/

在这里插入图片描述
解决方法
settings.py文件第28行ALLOWED_HOSTS=[]加入服务器IP,然后保存。

ALLOWED_HOSTS = ['180.25.91.166'] #[]内填服务器IP(公)
(2)错误二: Performing system checks…

在这里插入图片描述
解决方法
可能是因为端口没开,先进入阿里云控制台打开9090和3306的tcp端口,然后输入如下命令打开端口

firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload #最后一定要重启

(3)错误三: 已经安装了django,但虚拟环境中提示未安装

解决方法
pip3 命令安装的django只能在外部使用,在虚拟环境中要用pip命令来安装。

5 常用命令

cd /www/myproject/HelloWorld #进入文件夹,进入后才能用manage.py命令
django-admin startproject HelloWorld #创建django项目
python3 manage.py runserver 0:9090 #启动django服务
ctrl+C #退出服务
firewall-cmd --zone=public --add-port=8899/tcp --permanent #打开端口
firewall-cmd --reload #重启防火墙

使用templates:要设置路径:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,"templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

以上就是配置Django的全部记录了。喜欢搞事情、DIY、学技术的同学可以关注下面这个的公众号,了解更多有更趣的项目:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45780842/article/details/104286127
今日推荐