此为Django框架搭建的第二部分。第一部分详见上篇文章6、CentOS中部署虚拟环境 (1)安装虚拟环境 升级pip 〔rootfangel〕usrlocalpython3。9。10binpython3。9mpipinstallupgradepip 安装虚拟环境 〔rootfangel〕pip3installvirtualenv 〔rootfangel〕pip3installvirtualenvwrapper 小知识: 如果在安装virtualenvwrapper提示如下错误: 〔rootfangel〕pip3installvirtualenvwrapper Collectingvirtualenvwrapper Usingcachedvirtualenvwrapper4。8。4。tar。gz(334kB) Preparingmetadata(setup。py)。。。error error:subprocessexitedwitherror pythonsetup。pyegginfodidnotrunsuccessfully。 exitcode:1 〔1linesofoutput〕 ERROR:Cannotexecutesetup。pysincesetuptoolsisnotavailableinthebuildenvironment。 〔endofoutput〕 note:Thiserrororiginatesfromasubprocess,andislikelynotaproblemwithpip。 error:metadatagenerationfailed Encounterederrorwhilegeneratingpackagemetadata。 Seeaboveforoutput。 note:Thisisanissuewiththepackagementionedabove,notpip。 hint:Seeabovefordetails。 解决方法: 先升级setuptools,再安装virtualenvwrapper 〔rootfangel〕pipinstallupgradesetuptools 〔rootfangel〕pip3installvirtualenvwrapper 编辑文件 创建一个文件夹,用于存放所有的虚拟环境,一般建议在home目录下(加。是隐形目录,不能直接看到) 〔rootfangel〕mkdirhome。virtualenvs 编辑文件: 〔rootfangel〕vi。bashrc 增加: exportWORKONHOMEhome。virtualenvs exportVIRTUALENVWRAPPERPYTHONusrlocalpython3。9。10binpython3。9 sourceusrlocalpython3。9。10binvirtualenvwrapper。sh 读入配置文件,立即生效 source。bashrc 出现如下提示信息,说明成功。如果显示error,请自行排查原因: (2)创建虚拟环境 基础命令: 创建虚拟环境:mkvirtualenv虚拟环境名,创建成功后自动进入 如果想指定一个python3来运行的虚拟环境:mkvirtualenv虚拟环境名ppython路径 退出虚拟环境:deactivate 进入虚拟环境工作:workon虚拟环境名 查看主机有多少个虚拟环境:workon空格两个tab键 删除虚拟环境:rmvirtualenv虚拟环境名 虚拟环境下安装django包:pip3installdjango 查看虚拟环境中安装了哪些python包:pip3list或者pip3freeze7、在虚拟环境中部署Django (1)安装Django 〔rootfangel〕mkvirtualenvfangelvirtEnv (fangelvirtEnv)〔rootfangel〕pip3installdjango 部署完以后,查看当前环境部署的包: (2)创建Django项目: (fangelvirtEnv)〔rootfangel〕mkdirfangeldjango (fangelvirtEnv)〔rootfangel〕cdfangeldjango (fangelvirtEnv)〔rootfangelfangeldjango〕ls (fangelvirtEnv)〔rootfangelfangeldjango〕djangoadminstartprojectdjangotest1 (fangelvirtEnv)〔rootfangelfangeldjango〕ls djangotest1 (fangelvirtEnv)〔rootfangelfangeldjango〕cddjangotest1 (fangelvirtEnv)〔rootfangeldjangotest1〕tree djangotest1 asgi。py init。py settings。py urls。py wsgi。py manage。py 1directory,6files 说明: init。py:说明djangotest1是一个python包。 settings。py:项目的配置文件。 urls。py:进行url路由的配置。 wsgi。py:web服务器和Django交互的入口(运行在WSGI兼容的Web服务器上的入口) asgi。py:运行在ASGI兼容的Web服务器上的入口 manage。py:项目的管理文件。 (3)创建Django应用: (fangelvirtEnv)〔rootfangeldjangotest1〕pythonmanage。pystartappapptest 在创建时提示如下的错误 ModuleNotFoundError:Nomodulenamedsqlite3 解决方法 (fangelvirtEnv)〔rootfangeldjangotest1〕deactivate 现在缺失的sqlite3库,然后重新编译安装python 〔rootfangeldjangotest1〕yuminstallsqlitedevel 〔rootfangeldjangotest1〕cdusrlocalsrcPython3。9。10 〔rootfangelPython3。9。10〕。configureprefixusrlocalpython3。9。10 〔rootfangelPython3。9。10〕makemakeinstall 再进去之前已经创建的虚拟环境: 〔rootfangelPython3。9。10〕workonfangelvirtEnv (fangelvirtEnv)〔rootfangelfangeldjango〕cdroot (fangelvirtEnv)〔rootfangel〕cdfangeldjangodjangotest1 (fangelvirtEnv)〔rootfangeldjangotest1〕pythonmanage。pystartappapptest 此时应用启动成功,无报错 说明: init。py:说明目录是一个Python模块。 models。py:写和数据库项目的内容,设计模型类。 views。py:接收请求,进行处理,与M和T进行交互,返回应答。定义处理函数,视图函数。 tests。py:写测试代码的文件。 admin。py:网站后台管理相关的文件。 (4)应用注册: 建立应用和项目之间的联系,需要对应用进行注册。 在Linux中打开Projects,如下: 找到djangotest1apptestdjangotest1下的settings。py文件,增加如下红色的部分,应用名就是之前创建的应用名: INSTALLEDAPPS〔 django。contrib。admin, django。contrib。auth, django。contrib。contenttypes, django。contrib。sessions, django。contrib。messages, django。contrib。staticfiles, apptest,appregisterbyfangel2022119 〕 (5)启动项目: (fangelvirtEnv)〔rootfangeldjangotest1〕pythonmanage。pyrunserver 看到此页面就表明Django项目部署成功: 解决在外部无法访问虚机内部Django的方法开始 (1)关闭电脑上的防火墙 (2)关闭虚机CentOS系统里的防火墙 〔rootfangel〕systemctlstopfirewalld。service 〔rootfangel〕systemctldisablefirewalld。service (3)在django项目的settings。py文件中,找到ALLOWEDHOSTS〔〕 ALLOWEDHOSTS〔〕代表所有地址都可以访问 (4)重新启动服务,并且以0。0。0。0:8000地址启动 (fangelvirtEnv)〔rootfangeldjangotest1〕pythonmanage。pyrunserver0。0。0。0:8000 (5)在外部输入虚拟机的IP地址即可访问,如下页面: 解决在外部无法访问虚机内部Django的方法结束