Skip to content

Django入门

更新: 2025/2/24 字数: 0 字 时长: 0 分钟

这一年,开源 Web 框架 Django 发布,Django 提供了许多开箱即用的功能和工具,例如 ORM(对象关系映射)、模板引擎、表单处理等。大大简化了 Web 应用程序的开发过程,帮助开发人员快速构建功能完善的应用。目前 Django 已成为了最受欢迎的 Python Web 框架,在海外 Django 的受欢迎度更高,但是需要注意的是,虽然有不少流行的网站(例如知乎、豆瓣等)使用 Python 作为后端开发语言,但是在 Web 开发领域,Python 并不是最优选择。

django

Django:Python最知名、最有代表性的Web应用开发框架。

Django应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。

Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

Django遵循了MVC开发模式,并将这个模式命名为MTV(MTV模式是Python中独有的):M Model(数据模型,用于后端数据库模型定义和处理模块),T Templates(模版,用于前端显示信息),V View(视图,用于接收客户端请求、处理Model、渲染返回信息给客户端等)。

Django优势劣势:

Django优势:
1.一站式开发解决方案,拧包入住
2.各种组件集成高度成熟,配置齐全
3.用户模型、权限认证体系健全
4.ORM数据库管理功能简单方便
5.自带后台管理功能

Django劣势:
1.配置相对复杂
2.简单应用采用Django有一种杀鸡用牛刀的感觉

!> 注意:这里我特别强调一下,我遇见的一个大坑,电脑的用户名必须是英文,否则可能会在学习Django的过程中出现奇奇怪怪的错误。

准备工作

虚拟环境

首先我们需要新建一个虚拟环境,用于我们后期新建Django项目的使用。

# 切换到F盘
C:\Users\ChenZhuo>f:

# 创建mysite文件夹
F:\>mkdir mysite

# 进入mysite文件夹
F:\>cd mysite

# 新建名称为venv虚拟环境
F:\mysite>virtualenv venv

新建的虚拟环境,会在mysite文件夹下生成一个venv的文件夹用来存放虚拟环境,其结构目录如下:

F:\mysite\venv>:
    - Lib
        - 内置模块
        - site-packages(存放第三方模块)
    - Scripts
        - activate(启动虚拟环境)
        - deactivate(退出虚拟环境)
        - pip.exe(安装第三库的工具)
        - python.exe(python解释器)

我们进入到Scripts文件夹中,通过命令启动新建的venv虚拟环境:

# 进入到Scripts文件夹
F:\mysite>cd venv\Scripts

# 启动虚拟环境
F:\mysite\venv\Scripts>activate

# 出现(venv)说明环境启动成功,查看虚拟环境安装的包,只有三个很干净
(venv) F:\mysite\venv\Scripts>pip list
Package    Version
---------- -------
pip        22.0.4
setuptools 62.1.0
wheel      0.37.1

安装Django

在虚拟环境当中,我们通过如下命令安装Django框架:

(venv) F:\mysite\venv\Scripts>pip install django

当Django框架安装成功以后,在虚拟环境venv的目录就会多出两样东西:

F:\mysite\venv>:
    - Lib
        - 内置模块
        - site-packages(存放第三方模块)
            - django(Django框架源码)
    - Scripts
        - activate(启动虚拟环境)
        - deactivate(退出虚拟环境)
        - django-admin.exe(工具,创建Django项目以及文件夹和文件)
        - pip.exe(安装第三库的工具)
        - python.exe(python解释器)

创建项目

django项目中会有一些默认的文件和文件夹。

通过终端

  1. 打开终端。
  2. 在终端里,确定并进入项目路径。
  3. 执行命令创建项目:
"c:\python安装路径\Script\django-admin.exe" startproject 项目名称

# 如果c:\python安装路径\Script已加入环境变量,直接执行
django-admin startproject 项目名称

!> 注意:项目名称不能和已有项目名称重复。

通过PyCharm

首先保证我们的PyCharm是专业版的,点击左上角Fille——选择New Project...

QQ截图20220508114957

左侧选择要创建的项目类型,我们选择Django,在Location栏我们选择已经项目存放的 F:\mysite 路径,在下方我们选择新建虚拟环境venv中的python.exe作为当前项目的解释器,最后点击右下角的Create按钮创建项目。

QQ截图20220508122251

创建区别

通过命令行创建的项目是标准的,通过PyCharm创建的项目会额外附加一些东西,因此我们需要删除一些东西,首先我们打开 setting.py 删除TEMPLATES中的DIRS里面的内容,其次就是删除左侧的 templates 文件夹:

QQ截图20220508123700

删除后如下:

QQ截图20220508124103

文件介绍

初始结构

创建好了名称为mysite的Django项目,其初始结构如下:

mysite
    - manage.py(管理、启动项目;创建app;数据管理)(不做修改)
    - mysite
        - __init__.py
        - settings.py(项目配置)(经常修改)
        - urls.py(URL和函数的对应关系)(经常修改)
        - asgi.py(接受网络请求)(不做修改)
        - wsgi.py(接受网络请求)(不做修改)

APP结构

**APP其实就是一个应用,它里面可以有独立的表结构、函数、HTML模板等,从而让你编写更大的项目。**我们开发比较简洁,用不到多APP,一般情况下,项目下创建1个APP即可。在项目路径下执行下面命令:

# 创建一个名称为app01的APP应用
(venv) F:\mysite>python manage.py startapp app01

在项目路径下就会出现一个app的文件夹:

QQ截图20220508172721

其app01的目录结构如下:

app01
    - migrations(数据库字段变更)(很少修改)
        - __init__.py
    - __init__.py
    - admin.py(提供admin后台管理)(很少修改)
    - apps.py(app启动类)(不做修改)
    - models.py(数据库模型)(经常修改)
    - tests.py(单元测试)(不做修改)
    - views.py(视图函数)(经常修改)

快速上手

注册app

在上面我们已经创建了一个app01应用,但我们还需要注册才能使用它。首先打开app01应用里面的 apps.py 文件,复制里面的app启动类的名称为 App01Config 类:

QQ截图20220508173124

接下来打开项目文件夹中的 settings.py 文件,找到 INSTALLED_APPS 配置项,添加如下配置:

# APP应用名称.文件名称.启动类的名称
'app01.apps.App01Config'

QQ截图20220508173509

视图函数

现在我们打开app01应用里面的 view.py 文件类编写如下视图函数:

python
# 导入一个HttpResponse
from django.shortcuts import render, HttpResponse

# 默认必须要有request参数
def index(request):
    return HttpResponse("欢迎使用")

QQ截图20220508174149

注册视图

**我们写好一个视图函数以后需要注册它才能访问得到。**打开项目中的 urls.py 文件,编写如下代码,这样当我们去访问 https://.../index 路径时就会去执行 app01.views.index 函数:

python
from django.contrib import admin
from django.urls import path
# 引入app01应用中views视图文件
import app01.views

urlpatterns = [
    # 路径 ---> app01应用.文件.视图函数
    path('index/', app01.views.index),
]

QQ截图20220508174725

启动项目

启动项目也分两种方式:命令行启动、PyCharm启动。

命令行启动,需要在项目路径下执行如下命令:

# 在本机的5000端口上启动该项目
(venv) F:\mysite> python manage.py runserver 5000

PyCharm启动,如果通过PyCharm创建的项目,默认就配置好了环境,点击左上方的运行、调试按钮都可以启动项目:

QQ截图20220508180306

运行后它默认是在8000端口启动项目:

QQ截图20220508180414

访问这个端口,发现返回一个Page not found错误,这是因为我们没有当前路径对应的视图函数,而且Django还提示了目前只有 index/ 这一路径有视图函数:

QQ截图20220508180531

那么我们将路径加上,即访问 http://127.0.0.1:8000/index/ 路径,就能成功的访问到 app01.views.index 视图函数:

QQ截图20220508180807