1 Django

1.1 简介

Django 是一个高级 Python Web 框架,致力于用更少的代码,构建更好的 Web 应用程序,总而言之,它是一个成熟的后端框架。

1.2 为什么使用 Django

后端 Django 配合前端 Vue 的组合确实用的太多了,可以算是一个必备技能。

1.2.1 优点

  • 用户管理,数据库都不用自己处理,不用考虑具体细节实现
  • 生态成熟,周边工具、资源、教程多

1.2.2 缺点

  • 自成体系,有自己的框架,学习成本高
  • 代码结构相对复杂,不像 flask 那么简捷

1.3 相关概念

1.3.1 项目 Project 与 应用 App

项目是整个网站的组织结构,应用程序是网站的功能组件。

一个项目可以包含多个应用程序;应用程序可以通过 Django 的应用程序架构被多个项目共享。

1.3.2 模型 Model

数据存取层,用于处理与数据相关的所有事务:存取、验证有效性、行为以及数据之间的关系等。

1.3.3 模板 Template

表现层,用于处理具体的显示,包括 HTML 页面和前端模板。

1.3.4 视图 View

业务逻辑层,用于处理模型及模板的相关逻辑,是模型与模板间的桥梁。

2 使用方法

2.1 安装

1
2
$ pip3 install Django
$ django-admin --version # 查看版本

2.2 创建项目

1
2
3
$ django-admin startproject mytools # 创建项目
$ cd mytools
$ python manage.py startapp myapp # 创建应用程序目录

2.3 写程序

2.3.1 实现功能

1
$ vi myapp/views.py

加入以下 Python 代码

1
2
3
4
from django.http import HttpResponse

def hello(request):
return HttpResponse("Hello, Django World!")

2.3.2 设定接口

1
$ vi mytools/urls.py

Python 程序改为:

1
2
3
4
5
6
7
8
from django.contrib import admin
from django.urls import path
from myapp.views import hello

urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', hello),
]

2.4 运行服务

1
$ python manage.py runserver 0.0.0.0:8001

此时,在本机 8001 端口打开访问新建的 hello。

http://localhost:8001/hello/

由于设定了 ip 为 0.0.0.0,则在 docker 外部通过 ip 也可以访问该网址,需要注意的是需要在 setting.py 中添加 ip 地址:

1
$ vi mytools/settings.py

修改形如:

1
2
3
ALLOWED_HOSTS = ['192.168.10.106']
# 或
ALLOWED_HOSTS = ['*'] # 允许所有主机访问