使用Django开发自己的第一个web服务
Django
Django是一个高级的、使用Python语言编写的开源Web框架,旨在快速开发安全和可维护的网站。它遵循模型-视图-模板(MVT)的设计模式,类似于模型-视图-控制器(MVC)模式。
Django是开发Web应用的热门选择,适用于从小型项目到大型企业级系统的开发。
MVT
- M:Model 模型层
- T:Template 页面模版
- V:View 视图层
数据处理顺序
⽤户请求 --> URL 控制器 --> view 视图 --> Model 模型 --> Template 模版 --> 返回 HTML
官方文档
准备
安装python环境,包含pip等。
这个是python的下载地址:www.python.org/downloads/
如果下载的免安装版本没有pip,单独安装下pip,可以查询其它资料如何安装。
示例环境如下:
Python 3.11.8
pip 24.0 from E:\python-3.11.8\Lib\site-packages\pip (python 3.11)
IDE,我用的是PyCharm 2023.1.2版本,使用其它ide的仅供参考。
创建工程
安装django
pip3 install django
我的电脑上pip3和pip命令是同一个版本。
下面,我以创建一个名字叫what_to_eat的项目为例,进行演示。
如果以后中午不知道吃什么,就使用这个项目来选择。
创建项目
django-admin startproject what_to_eat
项目名称不能用中划线,我做java的,习惯了中划线,不让用还挺不习惯。
创建应⽤
cd what_to_eat
python3 manage.py startapp what_to_eat
运⾏Django
python3 manage.py runserver 8080
如果在windows的命令行运行没反应,也可以下面这个样子:
开发
用pycharm打开
打开的时候,看见右下角有个配置一个python解释器的提示,我们配置一下,并且要创建一个虚拟环境。
为什么要虚拟环境,主要是以下几点:
- 避免依赖冲突
- 环境一致性
- 开发与系统环境分离
- 易于管理
- 可移植性
也可以选择其它几个。
增加完,idea会自动生成这个:
同样也可以运行项目了:
再创建个app
增加一个views.py, 返回一个index.html:
增加一个index.html页面,先创建一个templates目录:
index.html的内容如下:
{% load bootstrap4 %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>吃什么呀</title>
{% bootstrap_css %}
{% bootstrap_javascript %}
<style>
.v-center {
padding-top: 15%;
}
@keyframes blink {
0%, 100% {
opacity: 1;
color: black;
}
50% {
opacity: 0;
color: red;
}
}
.text-flashing {
animation: blink 1s ease-in-out infinite;
}
p {
font-size: 50px;
}
</style>
</head>
<body>
<div class="d-flex flex-column align-items-center v-center">
<p class="text-flashing">
点击下方按钮进行选择
</p>
<!-- 随机选择链接 -->
<a href="random" class="btn btn-primary mb-2">随机选择</a>
<!-- AI推断链接 -->
<a href="ai" class="btn btn-secondary">AI推断</a>
</div>
</body>
修改settings.py,设置模板目录:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'what_to_eat/templates'),
os.path.join(BASE_DIR, 'random_choice/templates'),
os.path.join(BASE_DIR, 'ai_inference/templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
引入bootstrap,还是setting.py里修改:
安装依赖:
修改urls.py,访问根路径的时候返回index.html:
这里已经返回了一个页面,可以启动项目看下效果
部署
导出依赖列表
pip freeze > requirements.txt
上传服务器
将项目打包部署上传到服务器(打个干净点的压缩包):
安装虚拟环境
我的服务器上已经装了virtualenv,如果没有安装的可以使用如下命令安装:
pip install virtualenv
也可以使用其它方式创建虚拟环境,方式多样,不一定用这种。
进入解压后的目录:
创建虚拟环境
virtualenv venv
创建完成可以看一个venv目录。
激活环境
source venv/bin/activate
安装依赖
pip install -r requirements.txt
安装完成后,运行项目:
python3 manage.py runserver 0.0.0.0:13005
然后就可以访问了,如果通过互联网访问被拒绝了,就修改settings.py,如下配置:
如果需要后台运行就使用nohup命令。
取消虚拟环境,执行如下命令:
deactivate
完整项目地址
已提交gitee: gitee.com/xiaodong_xu…
转载自:https://juejin.cn/post/7362574547210485795