如何在CentOS 7上安装Django
Django是一个免费的开源高级Python Web框架,旨在帮助开发人员构建安全,可扩展和可维护的Web应用程序。
有多种安装Django的方法,具体取决于需求。
它可以安装在系统范围内,也可以使用pip安装在Python虚拟环境中。
Django软件包也包含在CentOS存储库中,可以使用'yum'软件包管理器进行安装,但是它们已经过时了。
在本教程中,我们将在Python虚拟环境中的CentOS 7计算机上安装和配置Django的最新稳定版本。
Python虚拟环境的主要目的是为不同的Python项目创建一个隔离的环境。
这样,我们可以在一台计算机上拥有多个不同的Django环境,并在每个项目的基础上安装模块的特定版本,而不必担心这会影响其他Django安装。
如果将Django安装到全局环境中,则只能在计算机上安装一个Django版本。
在CentOS 7上安装Django
以下各节提供了有关如何在CentOS 7的Python虚拟环境中安装Django的逐步说明。
1.安装Python 3
我们将从软件集合(SCL)存储库中安装Python 3.6.
CentOS 7附带了Python 2.7.5,这是CentOS基本系统的关键部分。
SCL允许我们在默认的python v2.7.5旁边安装新版本的python 3.x,以便yum之类的系统工具将继续正常运行。
首先通过安装CentOS Extras存储库中包含的CentOS SCL发行文件来启用SCL:
sudo yum install centos-release-scl
启用存储库后,使用以下命令安装Python 3.6:
sudo yum install rh-python36
安装Python 3.6之后,我们就可以为Django应用程序创建虚拟环境了。
2.创建虚拟环境
从Python 3.6开始,创建虚拟环境的推荐方法是使用“ venv”模块。
导航至我们要存储Python 3虚拟环境的目录。
它可以是主目录,也可以是用户具有读写权限的任何其他目录。
为Django应用程序创建一个新目录并cd到其中:
mkdir my_django_appcd my_django_app
要访问Python 3.6,我们需要使用“ scl”工具启动一个新的shell实例:
scl enable rh-python36 bash
运行以下命令以创建新的虚拟环境:
python3 -m venv venv
上面的命令创建一个名为“ venv”的目录,其中包含Python二进制文件,Pip程序包管理器,标准Python库和其他支持文件的副本。
我们可以为虚拟环境使用任何想要的名称。
要开始使用此虚拟环境,我们需要通过运行“激活”脚本来激活它:
source venv/bin/activate
激活后,虚拟环境的bin目录将添加到“ $PATH”变量的开头。
此外,Shell提示符也会更改,并且会显示我们当前正在使用的虚拟环境的名称。
在我们的例子中是'venv'。
3.安装Django
现在已经激活了虚拟环境,我们可以使用Python包管理器“ pip”安装Django:
pip install django
在虚拟环境中,可以使用命令'pip'代替'pip3'和'python'代替'python3'。
要验证安装,请使用以下命令,该命令将打印Django版本:
python -m django --version
在撰写本文时,最新的官方Django版本是2.1.2.
2.1.2
Django版本可能与此处显示的版本不同。
4.创建一个Django项目
要创建一个名为“ mydjangoapp”的新Django项目,请使用“ django-admin”命令行实用程序:
django-admin startproject mydjangoapp
上面的命令将在当前目录中创建一个“ mydjangoapp”目录。
tree mydjangoapp/
mydjangoapp/ |-- manage.py `-- mydjangoapp |-- __init__.py |-- settings.py |-- urls.py `-- wsgi.py
在该目录中,我们会找到用于管理名为“ manage.py”的项目的主脚本,以及另一个目录,其中包括数据库配置,Django和特定于应用程序的设置。
让我们迁移数据库并创建一个管理用户。
首先导航到“ mydjangoapp”目录:
cd mydjangoapp
默认情况下,Django使用SQLite数据库。
对于生产应用程序,可以使用PostgreSQL,MariaDB,Oracle或者MySQL数据库。
运行以下命令来迁移数据库:
python manage.py migrate
输出将类似于以下内容:
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK
迁移数据库后,创建一个管理用户,以便我们可以使用Django管理界面:
python manage.py createsuperuser
该命令将提示我们输入用户名,电子邮件地址和管理用户密码。
Username (leave blank to use 'theitroad'): admin Email address: [email protected] Password: Password (again): Superuser created successfully.
5.测试开发服务器
使用“ manage.py”脚本和“ runserver”选项启动开发Web服务器:
python manage.py runserver
我们会看到以下输出:
Performing system checks... System check identified no issues (0 silenced). October 20, 2016 - 11:16:28 Django version 2.1.2, using settings 'mydjangoapp.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
如果我们在虚拟机上安装了Django,并且要访问Django开发服务器,则需要编辑“ settings.py”文件,并将服务器IP地址添加到“ ALLOWED_HOSTS”列表中。
在网络浏览器中打开“ http://127.0.0.1:8000”,系统将显示默认的Django登陆页面:
我们可以通过在URL('http://127.0.0.1:8000/admin/')的末尾添加'/admin /'来访问Django管理界面。
这将带我们进入管理员登录屏幕:
输入用户名和密码,我们将被重定向到Django管理页面:
要停止开发服务器,请在终端中键入“ CTRL-C”。
6.停用虚拟环境
完成工作后,通过键入“ deactivate”来停用环境,我们将返回到常规shell。
deactivate