Ubuntu20.04下 Django框架搭建、部署、上线项目

因为我突然意识到,各个平台都有自己的开发手段,比如开发苹果手机英语的平台C#,我当年开发安卓的eclipse,开发出来的产品也收到机器本身的限制,苹果手机应用肯定就没法运行在安卓手机上。但是有一个东西是共通的,那就是浏览器,无论是手机、电脑,都可以访问web应用,仅仅只需要一个地址就可以。这样我就可以很方便的给周围的朋友、家人提供服务了

鉴于此项目的长期性,我决定使用比较系统的Django
具体参考这个文章,但是要有一些改动

0.因为将默认使用8000端口,我们让防火墙开启8000端口(当然后续也可以指定端口)

复制代码
utf allow 8000/tcp

1.因为使用的是ubuntu20.04,里面会有两个版本的python以及pip工具,因此必须要确定是哪个pip在安装,用下面的工具显示地找到pip3的执行程序。本着拥抱未来的原则,我们使用pip3

复制代码
which pip3

2.指明地调用pip3

复制代码
pip3 install virtualenv

安装virtualenv后,可以给我们创造一个虚拟的环境,这样可以从系统环境中分离开,类比在ubuntu16.04中安装了一个虚拟机

3.创建虚拟环境

复制代码
cd ~/workplace/python/virtualenv
virtualenv env

4.激活虚拟环境(!!很重要)

复制代码
cd env
source bin/activate

退出虚拟环境的命令是

复制代码
deactivate

但是,现在先不要退出,一旦退出就无法将Django模块,安装在虚拟机里面,后面的运行将会报错:"无法引入Django模块" 。

我也是后来发现要在虚拟机里面下载的

5.如果激活成功你可以看到命令行最前方出现(env),提示你,你已经在虚拟机中了,我们在虚拟机中安装Django,使用如下命令

复制代码
pip3 install django=4.2.11

注意两点:

5.1.此时的pip3命令并非Ubuntu20.04的pip3指令,使用

复制代码
which pip3

你可以看到,以及是虚拟环境下的指定了

5.2 注意我们指定了django的版本,自动安装低版本的Django会报错如下:

复制代码
__class__ not defining "AbstractBaseUser"...

这个错误我纠正了很久。。。。

6.创造第一个网站mysite(仍然是虚拟环境)

复制代码
 django-admin startproject mysite

7.上线

复制代码
 python manage.py runserver

可以在后面指定端口,比如

复制代码
 python3 manage.py runserver 127.0.0.1:22

一切正常的话,你可以在127.0.0.1:8000端口访问到小火箭的标志。

8.#问题(4/26/2024)

我已经有公网了,怎么让外面的访问到呢,应该和配置文件有关系,但是目前还不会,只能本地访问.

##(4/26/2024)

8.1修改settings.py设置,让任意外部主机都可以访问

复制代码
ALLOWED_HOSTS=['*']

8.2暂停apache服务,腾出来80端口,我怀疑是因为浏览器只能访问80端口,即使你指明了端口

8.3

在虚拟主机中使用如下命令:

``

python3 manage.py runserver 0.0.0.0:80

复制代码
我的机器公网ip是x.x.x.x,这样在火狐浏览器使用x.x.x.x:80就可以看到小火箭了。
8.4#如何后台执行呢,这样我退出shell仍然可以访问?
相关推荐
lusklusklusk21 分钟前
Oracle数据库基础之2_体系结构
数据库·oracle
老歌老听老掉牙26 分钟前
从三维旋转的深度解析到Python实现:绕任意轴旋转的奥秘
python·三维旋转
可乐ea40 分钟前
从第一性原理构建 AI Agent:提示词、工具、技能与记忆全解剖
数据库·人工智能·工具调用·ai智能体·提示词工程·agent开发·智能体记忆
打工仔折腾 AI43 分钟前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
东方护航数据恢复(深圳)1 小时前
医疗案例:HIS/PACS 数据库页损坏修复,医院不停诊完成恢复【东方护航数据恢复深圳店】
数据库·数据恢复·医疗·二次开盘
梦幻精灵_cq1 小时前
sumdir——一个伪python.built-in的“术法”打造
python
lusklusklusk2 小时前
Oracle数据库基础之11_Duplicate和Dataguard和RAC
数据库·oracle
weixin_440730503 小时前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
天赐范式3 小时前
天赐范式第181天:让视图开始切换——PBFT视图切换与从safety到liveness的跨越
python·pbft·数字生命·天赐范式·动态运行时·拜占庭容错
sugarzhangnotes3 小时前
【无标题】
开发语言·人工智能·python