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的方法结束 ##############
丢尽脸面了!马蓉1500万移民澳洲跑路宋喆出狱被迫回家喂猪?最近宋喆出狱的消息传播了整个网络,有网友表示宋喆因为在狱中表现良好,已经提前释放,但目前只能回农村老家种田喂猪,因为已经身无分文。消息一爆出来引起了大家的高度关注,网友都在核实消息
赵雅芝69岁,美出了天际赵雅芝在平台上晒黑色礼服装,妆容精致,温柔又优雅。并配文说黑色,是最丰富,最复杂,最倦容的颜色,带上柔情,赴一场暗夜盛宴。这背真美,又薄。哈哈,犹抱琵琶半遮面吗?大红唇配这礼服绝对
新人玩武侠,最容易踩到的坑是什么?新人玩武侠最容易踩到的坑就是门派选择问题,其实其他的小坑都可以忽略不计,但门派选择真的影响深远,不但直接决定了你后期的发展,还决定了你整个武侠生涯过的舒不舒服。因此,我们必要要了解
梦幻聊斋宠物之谜对于回合制网游来说,宠物是身边必不可少的伙伴,梦幻聊斋也是一样。第一讲宠物分类之谜梦幻聊斋中的宠物分为野生宠物,宝宝宠物,变异宠物和神兽宠物野生宠物攻击和防御能力受到等级影响,具有
山口丁里的连狙!锉刀也不能完全挫伤它的锐气!能跑能打能点灯各位车长老爷大家好啊!今天鉴坑大师莱茵不鉴坑啦,而是给大家推荐一辆小编觉得还不错的战车B标准型。它名字奇怪,身世奇特,强度也有起有落,但是在爬意大利中坦线到九级时,总的体感还是很不
使命召唤先锋评测平庸之作由sledghammer大锤工作室出品,动视发行的使命召唤先锋于2021年12月9日正式登场。发布后可谓是新赛季,新景象。新的战区地图代替了存在多年的佛但斯克,此外先锋的多人模式有
144Hz已经过时啦!2022年四款优秀的电竞显示器,预算不高也能买电竞显示器出现在市场上已经好几年了,各种规格配置的产品琳琅满目,市场竞争非常的激烈。那么如何才能从激烈的市场竞争中脱颖而出呢?除了价格上的比拼之外,各家产品只能通过增强性能来提升产
长时间戴耳机选哪一种目前最好用的骨传导耳机品推荐骨传导耳机采用开放式听歌的设计,听音单元不需要进入耳朵。声音直接通过振动耳骨就可传音,这在很大的程度上对于耳朵的听力都起到非常大的作用!而这也是普通耳机和骨传导耳机不可比拟的地方!
iPhone14Pro定制版发布,最高售价33。7万元综合已有爆料显示,苹果将在接下来的秋季发布会带来iPhone14iPhone14MaxiPhone14Pro和iPhone14ProMax四款新机。其中,两款Pro的升级非常大,不
从马里亚纳到潘塔纳尔,OPPO自研晋级众所周知,经济环境以及行业创新的低迷,智能手机的出货量在急剧萎缩,对于任何一个手机品牌而言,如何活下去且有品质的活下去是当前面临的最大难题。上周,2022OPPO开发者大会(ODC
你凭什么有定力?保持定力很重要,但定力不能变成一个回避困难和问题的托辞。家中有粮心中不慌,家中快揭不开锅你慌不慌?所以定力是需要资格和底气的,定力必须建立在必胜的把握之上。定力究竟从何而来?真正的