Linux下Django框架的搭建(二)

此为Django框架搭建的第二部分。第一部分详见上篇文章

6、CentOS中部署虚拟环境

(1)安装虚拟环境

#升级pip

[root@fangel ~]# /usr/local/python-3.9.10/bin/python3.9 -m pip install --upgrade pip

#安装虚拟环境

[root@fangel ~]# pip3 install virtualenv

[root@fangel ~]# pip3 install virtualenvwrapper

小知识:

如果在安装virtualenvwrapper提示如下错误:

[root@fangel ~]# pip3 install virtualenvwrapper

Collecting virtualenvwrapper

Using cached virtualenvwrapper-4.8.4.tar.gz (334 kB)

Preparing metadata (setup.py) ... error

error: subprocess-exited-with-error


× python setup.py egg_info did not run successfully.

│ exit code: 1

╰─> [1 lines of output]

ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.

[end of output]


note: This error originates from a subprocess, and is likely not a problem with pip.

error: metadata-generation-failed


× Encountered error while generating package metadata.

╰─> See above for output.


note: This is an issue with the package mentioned above, not pip.

hint: See above for details.

解决方法:

先升级setuptools,再安装virtualenvwrapper

[root@fangel ~]# pip install --upgrade setuptools

[root@fangel ~]# pip3 install virtualenvwrapper

编辑文件

#创建一个文件夹,用于存放所有的虚拟环境,一般建议在home目录下(加.是隐形目录,不能直接看到)

[root@fangel ~]# mkdir /home/.virtualenvs

编辑文件:

[root@fangel ~]# vi ~/.bashrc

增加:

export WORKON_HOME=/home/.virtualenvs

export VIRTUALENVWRAPPER_PYTHON=/usr/local/python-3.9.10/bin/python3.9

source /usr/local/python-3.9.10/bin/virtualenvwrapper.sh

#读入配置文件,立即生效

source ~/.bashrc

出现如下提示信息,说明成功。如果显示error,请自行排查原因:

(2)创建虚拟环境

基础命令:

创建虚拟环境:mkvirtualenv 虚拟环境名,创建成功后自动进入

如果想指定一个python3来运行的虚拟环境:mkvirtualenv 虚拟环境名 -p python路径

退出虚拟环境:deactivate

进入虚拟环境工作:workon 虚拟环境名

查看主机有多少个虚拟环境:workon 空格 + 两个tab键

删除虚拟环境:rmvirtualenv 虚拟环境名

虚拟环境下安装django包:pip3 install django

查看虚拟环境中安装了哪些python包:pip3 list 或者 pip3 freeze

7、在虚拟环境中部署Django

(1)安装Django

[root@fangel ~]# mkvirtualenv fangel_virtEnv

(fangel_virtEnv) [root@fangel ~]# pip3 install django

部署完以后,查看当前环境部署的包:

(2)创建Django项目:

(fangel_virtEnv) [root@fangel ~]# mkdir fangel_django

(fangel_virtEnv) [root@fangel ~]# cd fangel_django/

(fangel_virtEnv) [root@fangel fangel_django]# ls

(fangel_virtEnv) [root@fangel fangel_django]# django-admin startproject django_test1

(fangel_virtEnv) [root@fangel fangel_django]# ls

django_test1

(fangel_virtEnv) [root@fangel fangel_django]# cd django_test1/

(fangel_virtEnv) [root@fangel django_test1]# tree

├── django_test1

│ ├── asgi.py

│ ├── __init__.py

│ ├── settings.py

│ ├── urls.py

│ └── wsgi.py

└── manage.py

1 directory, 6 files

说明:

__init__.py: 说明django_test1是一个python包。

settings.py: 项目的配置文件。

urls.py: 进行url路由的配置。

wsgi.py: web服务器和Django交互的入口(运行在WSGI兼容的Web服务器上的入口)

asgi.py: 运行在ASGI兼容的Web服务器上的入口

manage.py: 项目的管理文件。

(3)创建Django应用:

(fangel_virtEnv) [root@fangel django_test1]# python manage.py startapp app_test

############## 在创建时提示如下的错误 ##############

ModuleNotFoundError: No module named '_sqlite3'

############## 解决方法 ##############

(fangel_virtEnv) [root@fangel django_test1]# deactivate

#现在缺失的sqlite3库,然后重新编译安装python

[root@fangel django_test1]# yum install sqlite-devel

[root@fangel django_test1]# cd /usr/local/src/Python-3.9.10/

[root@fangel Python-3.9.10]# ./configure prefix=/usr/local/python-3.9.10

[root@fangel Python-3.9.10]# make && make install

再进去之前已经创建的虚拟环境:

[root@fangel Python-3.9.10]# workon fangel_virtEnv

(fangel_virtEnv) [root@fangel fangel_django]# cd /root

(fangel_virtEnv) [root@fangel ~]# cd fangel_django/django_test1/

(fangel_virtEnv) [root@fangel django_test1]# python manage.py startapp app_test

############## 此时应用启动成功,无报错 ##############

说明:

__init__.py: 说明目录是一个Python模块。

models.py: 写和数据库项目的内容, 设计模型类。

views.py: 接收请求,进行处理,与M和T进行交互,返回应答。定义处理函数,视图函数。

tests.py: 写测试代码的文件。

admin.py: 网站后台管理相关的文件。

(4)应用注册:

建立应用和项目之间的联系,需要对应用进行注册。

在Linux中打开Projects,如下:

找到django_test1 / app_test / django_test1下的settings.py文件,增加如下红色的部分,应用名就是之前创建的应用名:

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'app_test', #app register by fangel 2022/11/9

]

(5)启动项目:

(fangel_virtEnv) [root@fangel django_test1]# python manage.py runserver

看到此页面就表明Django项目部署成功:

############ 解决在外部无法访问虚机内部Django的方法开始 ##############

(1)关闭电脑上的防火墙

(2)关闭虚机CentOS系统里的防火墙

[root@fangel ~]# systemctl stop firewalld.service

[root@fangel ~]# systemctl disable firewalld.service

(3)在django项目的settings.py文件中,找到ALLOWED_HOSTS=[ ]

ALLOWED_HOSTS = ['*'] #*代表所有地址都可以访问

(4)重新启动服务,并且以0.0.0.0:8000地址启动

(fangel_virtEnv) [root@fangel django_test1]# python manage.py runserver 0.0.0.0:8000

(5)在外部输入虚拟机的IP地址即可访问,如下页面:

############ 解决在外部无法访问虚机内部Django的方法结束 ##############

展开阅读全文

页面更新:2024-04-12

标签:防火墙   函数   框架   入口   错误   提示   编辑   地址   环境   文件   项目

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top