1、Django简介


Django是Python语言中的一个web框架,Python语言中主流的web框架有Django、Tornado、Flask 等多种。Django相较与其它WEB框架,其优势为: ​ 大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等功能,是一个全能型框架,拥有自己的Admin数据管理后台,第三方工具齐全,性能折中。 ​ 缺点:功能太多,数据分表复杂,高性能扩展复杂。Django 是开源的!

2、安装方式


  1. pip安装:在cmd命令窗口中,输入:

pip install django

    2.   pycharm安装:在file >> settings >> project >> project interpreter 中 搜索 django,进行安装

    3.  下载安装包安装:在官网:https://www.djangoproject.com/download/ , 下载 django-master.tar,解压后,在解压目录中 运行 cmd(或者在cmd中切换到解压目录),然后通过输入命令:

python setup.py install

3、开发文档


  官方文档的链接在:https://docs.djangoproject.com/en/2.2/ ,点击页面右下角的 language 按钮,可以选择 zh-hans ,显示中文,只有部分页面有中文翻译,点击页面右下角的Documentation version,可以选择版本。

4、Django框架总览图


5、相关术语和规范


  1. B/S和C/S架构

    Django是用于开发B/S架构的软件的,软件主要分为B/S架构和C/S架构:

    • B/S:全称Browser/Server(浏览器/服务器)

    • C/S:全称Client/Server(客户端/服务器)

  2. MVC

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

    • M: 管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)。

    • V: 负责把数据格式化后呈现给用户。

    • C: 接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。

  3. MTV

    Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:

    • M: 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。一个抽象层,用来构建和操作你的web应用中的数据,模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。

    • T: 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。模板层提供了设计友好的语法来展示信息给用户。使用模板方法可以动态地生成HTML。模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。

    • V: 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。用于封装负责处理用户请求及返回响应的逻辑。视图可以看作是前端与数据库的中间人,他会将前端想要的数据从数据库中读出来给前端。他也会将用户要想保存的数据写到数据库。

  4. ORM

    与Flask项目不同(SqlAlchemy),Django自带ORM对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。

    ORM方法论基于三个核心原则:

    • 简单:以最基本的形式建模数据。

    • 传达性:数据库结构被任何人都能理解的语言文档化。

    • 精确性:基于数据模型创建正确标准化的结构。

    ORM是随着面向对象的软件开发方法发展而产生的。用来把对象模型表示的对象映射到基于SQL 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。ORM技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。

6、项目的创建


  1. cmd窗口中,切换到指定的项目文件夹,执行:

    django-admin startproject my_project

    其中 my_project 是你的项目名称

    这时会在指定的项目文件夹中,生成一个 mysite 文件夹,目录结构如下:

     my_project/
    manage.py
    my_project/
    __init__.py
    settings.py
    urls.py
    wsgi.py  

    这些目录和文件的说明如下:

    • 最外层的my_project/ 根目录是项目的名称

    • manage.py 是管理 Django 项目的命令行工具

    • 里面一层的 my_project/ 目录包含你的项目主应用,它是一个 Python 包

    • my_project__init__.py:一个空文件,告诉 Python 这个目录是一个 Python 包

    • my_project/settings.py:项目的配置文件

    • my_project/urls.py:项目的 url路由配置

    • mysite/wsgi.py:用于你的项目的与WSGI兼容的Web服务器入口,用于项目部署

  2. cmd窗口中,进入最外层的my_project

  3. 在这个目录下,我们可以输入如下命令,创建一个新的子应用:

     django-admin startapp first_app 
  4. 在该cmd目录下执行如下命令,可以启动项目:

     python manage.py runserver

    该命令后续可以增加参数,如:

     python manage.py runserver 8000
     python manage.py runserver 127.0.0.1:8000

    cmd窗口中会出现如下信息:

    F:\django_study\first_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
  5. 在浏览器中访问http://127.0.0.1:8000/ ,会出现如下欢迎页面:

  6. 第5步能够打开一个 django 的欢迎页面,是因为第 4 步 中的命令,启动了django自带的一个简易web服务器,它是一个用纯 Python 写的轻量级的 Web 服务器。仅仅用于开发环境,不要在生产环境使用。

    在这个服务器中,在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。

2、pycharm构建项目


  1. pycharm 中 file >> new project >> django

    PS:只有 pycharm professional版本才可以直接创建django项目

  2. 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.启动项目

  1. 运行根目录下的manage.py, 第一次会运行失败,因为没有添加参数

  2. 在pycharm的右上角选择 edit configurations

  1. 在 parameters 中写入  runserver 0.0.0.0:8000

  1. 再次运行 manage.py,控制台显示信息如下:

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 07, 2020 - 22:41:31
Django version 3.0.5, using settings 'django_study_01.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

5.在浏览器中访问: http://127.0.0.1:8000 , 可以看到django的欢迎页面

  1. 添加第一个页面

    1. 修改first_app/views.py,增加如下代码:

      from django.http import HttpResponse

      def index(request): # 所有的视图函数都必须有参数request
      return HttpResponse("你好Django!")
            这是 Django 中最简单的视图。定义了一个index()函数,第一个参数必须是 request,与网页发来的请求有关,request 变量里面包含get或post的内容,用户浏览器,系统等信息在里面。

2.  在first_app目录下新建 urls.py

from django.urls import path
from . import views

urlpatterns = [
path('', views.index, name='index'),
]

3.修改 主应用下的urls.py(first_django_pycharm/urls.py)

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('first_app/', include('first_app.urls')),
path('admin/', admin.site.urls),
]

4.重新启动manage.py,浏览器中访问:http://127.0.0.1:8000/polls/,浏览器会显示我们在 views 中返回的内容:

 你好Django!

Django初级之django简介的更多相关文章

  1. Django框架-目录文件简介

    Rhel6.5 Django1.10 Python3.5 Django框架-目录文件简介 1.介绍Django Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django, ...

  2. python django基础四 ORM简介

    ORM,全称是object relation mapping.翻译过来,就是对象关系映射. 主要来学习MySQL操作,MySQL是一个软件.它的优点:1.免费 2.开源 pymysql,就是Mysql ...

  3. Python之 Django 初级

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  4. Django框架 (七) Django ORM模型

    ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装

  5. Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)

    摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...

  6. 全面解读Python Web开发框架Django,利用Django构建web应用及其部署

    全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...

  7. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  8. 【Django】Django 如何使用 Django设置的日志?

    代码: from django.core.management.base import BaseCommand, CommandError from django.db import models # ...

  9. python学习笔记--Django入门三 Django 与数据库的交互:数据建模

    把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式.在这个模式中, Model 代表数据存取层,View 代表的是系统中 ...

随机推荐

  1. 2.3 sqlmap目录及结构

    2.3 sqlmap目录及结构Tips:此篇文章主要参考了<sqlmap从入门到精通>这本书中的相关具体细节,由于这本书作者完成的时间大概在2017年作用,所以我根据书中提到的信息再根据目 ...

  2. 【大厂面试05期】说一说你对MySQL中锁的了解?

    这是我总结的一个表格,是本文中涉及到的锁(因为篇幅有限就没有包括自增锁) 加锁范围 名称 用法 数据库级 全局读锁 执行Flush tables with read lock命令各整个库接加一个读锁, ...

  3. (一)c++之细解 const 与 static

    const成员变量与const成员函数与const对象 static成员变量与static成员函数与static全局变量 const成员变量 1. const用于类中成员变量时,将类成员变为只读属性( ...

  4. Python--文件操作(操作文件)

    文件的操作包含:读.写.修改 文件的多种操作: # 读取文件的所有内容 data = open("yesteday.txt", encoding="utf-8" ...

  5. 04.Java基础语法

    一.Java源程序结构与编程规范 一个完整的Java源程序应该包含下列部分 package语句,至多一句,必须放在源程序第一句 import语句,没有或者若干句,必须放在所有类定义前 public c ...

  6. JS之预解释原理

    预解释的原理 预解释的不同机制 var的预解释机制 function 的预解释机制 预解释机制 面试题练习 预解释的的不同机制 预解释也叫预声明,是提前解释声明的意思:预解释是针对变量和函数来说的:但 ...

  7. LR脚本信息函数-lr_start_timer和lr_end_timer

    为了计算时间更加精确,可以用这个函数去掉LR自身的检查点所浪费的时间.如text check and image time Action() { double time_elapsed, durati ...

  8. 一个简单的Shell脚本(解决windows上文本在macos上乱码问题)

    之所以有这一篇文章,是因为之前我写过的一篇文章:“解决Mac上打开txt文件乱码问题”:传送门: https://www.cnblogs.com/chester-cs/p/11784079.html ...

  9. OO第一单元——谜之随性总结

    前言 第一单元的作业主要是以多项式求导为载体来训练我们的面向对象的思维,难度循序渐进,复杂度也一直在提高,但是面向对象的体现性也越来越强,当然带来的优势与便利也在逐步提升.下面的内容主要从需求分析,代 ...

  10. 自由切换 网页上的 ico 图标

    自由切换 网页上的   ico   图标: 第一步:      进入这个网站 :https://www.uupoop.com/ico/?action=make 第二步:      进入网站后,然后选择 ...