1、Django简介
Django是Python语言中的一个web框架,Python语言中主流的web框架有Django、Tornado、Flask 等多种。Django相较与其它WEB框架,其优势为: 大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等功能,是一个全能型框架,拥有自己的Admin数据管理后台,第三方工具齐全,性能折中。 缺点:功能太多,数据分表复杂,高性能扩展复杂。Django 是开源的!
2、安装方式
-
pip安装:在cmd命令窗口中,输入:
2. pycharm安装:在file >> settings >> project >> project interpreter 中 搜索 django,进行安装
3. 下载安装包安装:在官网:https://www.djangoproject.com/download/ , 下载 django-master.tar,解压后,在解压目录中 运行 cmd(或者在cmd中切换到解压目录),然后通过输入命令:
3、开发文档
官方文档的链接在:点击页面右下角的 language 按钮,可以选择 zh-hans ,显示中文,只有部分页面有中文翻译,点击页面右下角的Documentation version,可以选择版本。
4、Django框架总览图
5、相关术语和规范
-
B/S和C/S架构
Django是用于开发B/S架构的软件的,软件主要分为B/S架构和C/S架构:
-
B/S:全称Browser/Server(浏览器/服务器)
-
C/S:全称Client/Server(客户端/服务器)
-
-
MVC
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
-
M: 管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)。
-
V: 负责把数据格式化后呈现给用户。
-
C: 接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。
-
-
MTV
Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:
-
M: 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。一个抽象层,用来构建和操作你的web应用中的数据,模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。
-
T: 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。模板层提供了设计友好的语法来展示信息给用户。使用模板方法可以动态地生成HTML。模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。
-
V: 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。用于封装负责处理用户请求及返回响应的逻辑。视图可以看作是前端与数据库的中间人,他会将前端想要的数据从数据库中读出来给前端。他也会将用户要想保存的数据写到数据库。
-
-
ORM
与Flask项目不同(SqlAlchemy),Django自带ORM对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的–“虚拟对象数据库”。
ORM方法论基于三个核心原则:
-
简单:以最基本的形式建模数据。
-
传达性:数据库结构被任何人都能理解的语言文档化。
-
精确性:基于数据模型创建正确标准化的结构。
ORM是随着面向对象的软件开发方法发展而产生的。用来把对象模型表示的对象映射到基于SQL 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。ORM技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。
-
6、项目的创建
django-admin startproject my_project
my_project/ manage.py my_project/ __init__.py settings.py urls.py wsgi.py
django-admin startapp first_app
python manage.py runserver
python manage.py runserver 8000
python manage.py runserver 127.0.0.1:8000
F:django_studyfirst_pro>python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run "python manage.py migrate" to apply them. July 03, 2019 - 16:11:57 Django version 2.2.1, using settings "first_pro.settings" Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. [03/Jul/2019 16:13:06] "GET / HTTP/1.1" 200 16348 [03/Jul/2019 16:13:06] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423 [03/Jul/2019 16:13:06] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 85876 [03/Jul/2019 16:13:06] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 85692 [03/Jul/2019 16:13:06] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 86184 Not Found: /favicon.ico [03/Jul/2019 16:13:06] "GET /favicon.ico HTTP/1.1" 404 1975
2、pycharm构建项目
-
pycharm 中 file >> new project >> django
PS:只有 pycharm professional版本才可以直接创建django项目
-
location 中,前面路径,选择你自己的项目路径, untitled 项目名改为 firstdjangopycharm 变成如下:
D:Flask工程first_django_pycharm
3. project interpreter 点击 左边的 三角形 ,选择一个自己创建虚拟环境的解释器 more settings, 点击 左边的 三角形,设置 applications name,点击 create
4.查看目录结构如下:
其中first_app子应用下各文件的说明如下:
-
-
migrations : 执行数据库的迁移操作,就是把 models 中的 model 映射到数据库
-
admin :admin管理界面文件
-
apps: 本应用的相关配置文件
-
models:数据库的model文件
-
tests:测试函数文件
-
views:视图文件
-
5.启动项目
-
运行根目录下的manage.py, 第一次会运行失败,因为没有添加参数
-
在pycharm的右上角选择 edit configurations
-
在 parameters 中写入 runserver 0.0.0.0:8000
-
再次运行 manage.py,控制台显示信息如下:
5.在浏览器中访问: http://127.0.0.1:8000 , 可以看到django的欢迎页面
from django.http import HttpResponse def index(request): # 所有的视图函数都必须有参数request return HttpResponse("你好Django!")
这是 Django 中最简单的视图。定义了一个index()函数,第一个参数必须是 request,与网页发来的请求有关,request 变量里面包含get或post的内容,用户浏览器,系统等信息在里面。
2. 在first_app目录下新建 urls.py
3.修改 主应用下的urls.py(first_django_pycharm/urls.py)
4.重新启动manage.py,浏览器中访问:http://127.0.0.1:8000/first_app/,浏览器会显示我们在 views 中返回的内容: