• Django框架简介


    Django框架介绍

    • Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。

    • Django 是一个开放源代码的 Web 应用框架,由 Python 编写的。

    • Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0

    • Django 采用了 MVT 的软件设计模式,即模型(Model),模板(Template) 和 视图(View)

    MVC与MVT模型

    MVC

    Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:

    在这里插入图片描述

    MTV

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行django注意事项

    	1.django项目中所有的文件名目录名不要出现中文
    	2.计算机名称尽量不要出来中文
    	3.一个pycharm只开一个Django项目,不要一个窗口打开很多个项目(不要嵌套和叠加)
    	4.不同版本的python解释器配合不同版本的django可能会出现问题
    
    	'下图根据官网展示 LTS表示官方还在维护的版本,没有表示LTS表示不会更新维护'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述


    Django的下载与基本命令

    下载Django

    方式一:在命令界面使用pip安装

    	pip3 install django             默认最新版
    	pip3 install django==版本号      指定版本
    		pip3 install django==2.2.22
    	pip下载模块会自动解决依赖问题(会把关联需要用到的模块一下下载)
    
    • 1
    • 2
    • 3
    • 4

    方式二:使用pycharm安装

    File | Settings | Project: Pycharm_Project_Test | Python Interpreter

    在这里插入图片描述

    Django的基础命令

    命令行操作

    	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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    pycharm操作

    1.创建django项目

    File---->New Project----->Django----创建文件路径

    在这里插入图片描述

    点击this window,遵循一个pycharm窗口只打开一个django项目
    在这里插入图片描述


    2.使用Pycharm,当初始时没创建应用文件后,使用控制台创建应用app
    在初始创建项目时创建了应用文件的,可以跳过这个步骤,直接看这个下一步步骤

    在这里插入图片描述
    在创建的过程中可能会出错(在初始创建项目时也一样),是因为Django的版本过于低,Python解释器版本过于搞造成的,只需要在配置文件中更改下图的所指示的代码即可。代码:os.path.join(BASE_DIR,‘templates’)
    在这里插入图片描述

    更改完配置文件后,重新输入创建应用的命令即可创建成功在这里插入图片描述

    最后就是注册应用,把应用名称加入到配置文件中相应的位置即可
    在这里插入图片描述


    3.直接点击启动按钮启动Django项目就行了,然后点击蓝色链接访问即可
    在这里插入图片描述

    当然使用控制台使用命令行启动Django项目,在控制台输入启动命令后到浏览器进行输入对应的ip和端口号即可访问了(或者直接点击控制台启动成功那块的蓝色连接也行)

    在这里插入图片描述

    Django项目命令行操作与Pycharm操作的区别

    		1.命令行不会自动创建templates文件夹
    		2.命令行不会在配置文件编写关于templates文件夹的配置
    			'DIRS': [os.path.join(BASE_DIR, 'templates')]
    		3.pycharm自动创建的第一个应用会自动注册到配置文件中
    		4.针对db.sqlite3文件不用去在乎它有没有创建 只要运行了django会自动出来
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    在这里插入图片描述

    应用

    Django框架就类似于是一所大学,一所大学也要有二级学院。
    应用就类似于是二级学院,一个Django框架至少要有一个应用
    django里面的app类似于某个具体的功能模块:

    Django目录结构

    	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   		模型层
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    Django小白必会三板斧

    	frpm django.shortcuts import render,HttpResponse,redirect
    
    	HttpResponse       返回字符串类型的数据
    	render             返回HTML页面并且支持传值
    	redirect           重定向
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    Linux 常用命令
    基于JAVA旅游信息网站计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    Netty编码器和解码器
    非常经典的电压掉电监测电路,你学废了吗?
    【数据结构】带头双向循环链表的实现(C语言)
    Ubuntu关闭防火墙、关闭selinux、关闭swap
    C#,图颜色问题(MCP,M-coloring problem)的回溯(Backtracking)算法与源代码
    CMSC5707-高级人工智能之语音识别
    Leetcode刷题day6|242.有效的字母异位词 ,349. 两个数组的交集, 202. 快乐数,1. 两数之和
    苍穹外卖数据可视化
  • 原文地址:https://blog.csdn.net/achen_m/article/details/134296792