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仍然可以访问?
相关推荐
洛神灬殇12 分钟前
【LLM大模型技术专题】「入门到精通系列教程」基于ai-openai-spring-boot-starter集成开发实战指南
网络·数据库·微服务·云原生·架构
小鸡脚来咯23 分钟前
redis分片集群架构
数据库·redis·架构
Yxh181377845541 小时前
抖去推--短视频矩阵系统源码开发
人工智能·python·矩阵
christine-rr1 小时前
征文投稿:如何写一份实用的技术文档?——以软件配置为例
运维·前端·网络·数据库·软件构建
Humbunklung1 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
笔记·python·学习·pyqt
海尔辛1 小时前
SQL 基础入门
数据库·sql
笑醉踏歌行2 小时前
NVM,Node.Js 管理工具
运维·ubuntu·node.js
火车叼位2 小时前
使用 uv 工具在 Windows 系统快速下载安装与切换 Python
python
心扬2 小时前
python网络编程
开发语言·网络·python·tcp/ip
忧陌6062 小时前
DAY 44 预训练模型
python