Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
Django 是一个开放源代码的 Web 应用框架,由 Python 编写的。
Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0
Django 采用了 MVT 的软件设计模式,即模型(Model),模板(Template) 和 视图(View)
Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:
Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:
● M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
● T 代表模板 (Template):负责如何把页面展示给用户(html)。
● V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:
一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。
django1.x: 以前的老项目在使用,它跟2.x的版本区别不是特别大
django2.x:主流的项目使用的都是2.x的版本,有一点区别的跟1.x
django3.x: 新版本了,现在有不少的项目确实在选择3.x的版本
'比如:drf框架要求django的版本必须是2以上,不支持1的版本'
django的版本要和你的Python的版本要匹配,django3用个2.7版本,不行
django2----->python3.6以上
django1----->python3.6
1.django项目中所有的文件名目录名不要出现中文
2.计算机名称尽量不要出来中文
3.一个pycharm只开一个Django项目,不要一个窗口打开很多个项目(不要嵌套和叠加)
4.不同版本的python解释器配合不同版本的django可能会出现问题
'下图根据官网展示 LTS表示官方还在维护的版本,没有表示LTS表示不会更新维护'
pip3 install django 默认最新版
pip3 install django==版本号 指定版本
pip3 install django==2.2.22
pip下载模块会自动解决依赖问题(会把关联需要用到的模块一下下载)
File | Settings | Project: Pycharm_Project_Test | Python Interpreter
1.验证django是否下载成功
cmd终端输入django-admin
2.创建django项目
django-admin startproject 项目名
3.启动django项目
1.先切换到项目目录下
cd 项目名
2.执行启动目录
python38 manage.py runserver(不加ip:port默认是使用Django的端口号8000)
python38 manage.py runserver ip:port(这种是自己设定)
4.访问django服务端
浏览器直接访问
5.创建app应用
"""
django框架类似于是一个空壳子 给你提供所需的资源
至于到底要写哪些功能 需要通过创建app来划分
eg:django初始项目可以看成是一所大学
app就相当于是大学里面的各个学院
"""
python38 manage.py startapp 应用名
'在启动django项目的时候 一定要确保一个端口只有一个项目(默认端口8000)'
1.创建django项目
File---->New Project----->Django----创建文件路径
点击this window,遵循一个pycharm窗口只打开一个django项目
2.创建应用app
在创建的过程中可能会出错,是因为Django的版本过于低,Python解释器版本过于搞造成的,只需要在配置文件中更改下图的所指示的代码即可。代码:os.path.join(BASE_DIR,‘templates’)
3.启动Django项目,在控制台输入启动命令后到浏览器进行输入对应的ip和端口号即可访问了
1.命令行不会自动创建templates文件夹
2.命令行不会在配置文件编写关于templates文件夹的配置
'DIRS': [os.path.join(BASE_DIR, 'templates')]
3.pycharm自动创建的第一个应用会自动注册到配置文件中
4.针对db.sqlite3文件不用去在乎它有没有创建 只要运行了django会自动出来
Django框架就类似于是一所大学,一所大学也要有二级学院。
应用就类似于是二级学院,一个Django框架至少要有一个应用
django里面的app类似于某个具体的功能模块:
django项目目录
项目同名文件夹
__init__.py 很少用 主要做一些冷门配置
settings.py 项目的全局配置文件
urls.py 路由文件,写地址的后缀和视图函数的对应关系
wsgi.py django服务 基本不用
manage.py django的启动文件、入口文件
templates文件夹 模版文件,存储项目所需的html文件
应用名文件夹(可以有多个)
migrations文件夹 orm相关(数据库打交道的记录)
__init__.py 很少用 主要做一些冷门配置
admin.py django自带的后台管理系统
apps.py 创建应用之后用于应用的注册
models.py 模型层,存储与数据库表相关的类
tests.py 自带的测试文件
views.py 视图文件。存储业务相关的逻辑代码(函数、类)
db.sqlite3 自带的小型数据库
urls.py 路由层
views.py 视图层
templates 模板层
models.py 模型层
frpm django.shortcuts import render,HttpResponse,redirect
HttpResponse 返回字符串类型的数据
render 返回HTML页面并且支持传值
redirect 重定向