1、Django初识

1.1、Django介绍

  • MVC模型 Django本身基于MVC模型,即Model(模型)、View(视图)、Controller(控制器)设计模式。 MVC是以一种插件式、松耦合的方式连接在一起。
  • 模型(M):编写程序功能,负责业务对象与数据库的映射(ORM)
  • 视图(V):图形界面,负责和用户的交互(页面)
  • 控制器(C):负责转发请求,对请求进行处理。 image.png
  • MTV模型 Django的MTV本质上是和MVC是一样的,是为了各组件间保持松耦合关系,只是定义上有所不同,Django的MTV分别指:
  • M表示模型(Model):编写程序功能,负责业务对象和数据库的映射(ORM)
  • T表示模板(Templates):负责把页面(HTML)展示给用户
  • V表示视图(View):负责业务逻辑,并在适当的时候调用Model和Template 除了以上3层以外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,View再调用相应的Model和Template。用户操作流程如下: image.png

解析: 用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数: • a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。 • b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。 视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

1.2、Django安装

  • Python 下载地址:https://www.python.org/downloads/
  • Django 下载地址:https://www.djangoproject.com/download/

下载 Django 压缩包,解压并和 Python安装目录放在同一个根目录,进入 Django 目录,执行 python setup.py install,然后开始安装,Django 将要被安装到 Python 的 Lib下site-packages 检查是否安装成功 打开cmd,输入python

>>> import django
>>> django.get_version()

image.png

1.3、如何启动一个Django项目?

方法一: 在windows下的一个目录,打开cmd,执行django-admin startproject HelloWorld 语法:django-admin startproject 项目名称 则自动会在当前目录去创建一个HelloWorld的工程项目和初始化文件。如: image.png 目录说明: • HelloWorld: 项目的容器。 • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。 • HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。 • HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。 • HelloWorld/settings.py: 该 Django 项目的设置/配置。 • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。 • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。 方法二: 打开专业版的pycharm-->新建项目-->选择Django项目,如图: image.png

1.4、如何启动Python项目服务器?

直接在项目目录下的cmd命令行,或者在pycharm的项目目录下终端中执行:

 D:\PycharmProjects\mysite 的目录

2022-03-02  14:54    <DIR>          .
2022-03-02  14:54    <DIR>          ..        
2022-03-03  09:06    <DIR>          .idea     
2022-03-02  14:54                 0 db.sqlite3
2022-03-03  09:06    <DIR>          login     
2022-03-02  14:41               684 manage.py
2022-03-02  15:22    <DIR>          mysite
2022-03-02  15:28    <DIR>          templates
2022-03-02  14:33    <DIR>          venv
               2 个文件            684 字节
               7 个目录 251,355,516,928 可用字节

(venv) D:\PycharmProjects\mysite>python manage.py runserver 0.0.0.0:8000

0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。 在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,如果正常启动,输出结果如下: image.png

1.5、设计模型

Django不需要写SQL语句,内部提供了"对象关系映射器",可以直接用Python代码来描述数据库结构。举个例子:

models.py

from django.db import models

class Reporter(models.Model):
    full_name = models.CharField(max_length=70)		#定义了数据库Reporter表中的字段,full_name
    def __str__(self):		#__str__是为了和前端交互,以文本形式展示数据库字段的一个定义
        return self.full_name

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

    def __str__(self):
       return self.headline

1.6、应用数据模型

写完上面的模型设计代码,那么接下来,就可以使用以下2条命令来自动创建数据库表:

$ python manage.py makemigrations
$ python manage.py migrate

makemigrations 命令查找所有可用的模型,为任意一个在数据库中不存在对应数据表的模型创建迁移脚本文件。migrate命令则运行这些迁移来自动创建数据库表。