1、Django初识
1.1、Django介绍
- MVC模型 Django本身基于MVC模型,即Model(模型)、View(视图)、Controller(控制器)设计模式。 MVC是以一种插件式、松耦合的方式连接在一起。
- 模型(M):编写程序功能,负责业务对象与数据库的映射(ORM)
- 视图(V):图形界面,负责和用户的交互(页面)
- 控制器(C):负责转发请求,对请求进行处理。
- MTV模型 Django的MTV本质上是和MVC是一样的,是为了各组件间保持松耦合关系,只是定义上有所不同,Django的MTV分别指:
- M表示模型(Model):编写程序功能,负责业务对象和数据库的映射(ORM)
- T表示模板(Templates):负责把页面(HTML)展示给用户
- V表示视图(View):负责业务逻辑,并在适当的时候调用Model和Template 除了以上3层以外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,View再调用相应的Model和Template。用户操作流程如下:
解析: 用户通过浏览器向我们的服务器发起一个请求(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()
1.3、如何启动一个Django项目?
方法一:
在windows下的一个目录,打开cmd,执行django-admin startproject HelloWorld
语法:django-admin startproject 项目名称
则自动会在当前目录去创建一个HelloWorld的工程项目和初始化文件。如:
目录说明:
• 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项目,如图:
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) 及端口号,如果正常启动,输出结果如下:
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
命令则运行这些迁移来自动创建数据库表。