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. 第03组团队Git现场编程实战

    1.组员职责分工 张逸杰:复制监督整个编程任务的进程以及协助组员编程 黄智锋.刘汪洋:负责UI设计 苏凯婷.鲍冰如:爬取数据并负责测评出福州最受欢迎的商圈 陈荣杰.杨锦镔:爬取数据并负责测评出福州人均 ...

  2. STL中的string

    string常用函数 1.构造函数 string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 string类还支持默认构 ...

  3. 温故知新-快速理解zookeeper功能&应用&选举机制

    文章目录 zookeeper简介 什么是zookeeper zookeeper应用场景 zookeeper特点 zookeeper的角色 zookeeper的数据模型 节点数据结构 节点类型 zook ...

  4. iOS-线程&&进程的深入理解

    进程基本概念 进程就是一个正在运行的一个应用程序; 每一个进度都是独立的,每一个进程均在专门且手保护的内存空间内; iOS是怎么管理自己的内存的,见博客:博客地址 在Linux系统中,想要新开启一个进 ...

  5. Pipeline 脚本调用 mvn 命令失败

    问题描述 jenkins构建job时 提示mvn 未找到命令 + export JAVA_HOME=/home/tools/jdk1.8.0_221 + JAVA_HOME=/home/tools/j ...

  6. Vue路由-详细总结

    Vue路由vue-router   前面的话 在Web开发中,路由是指根据URL分配到对应的处理程序.对于大多数单页面应用,都推荐使用官方支持的vue-router.Vue-router通过管理URL ...

  7. iOS开发实践-OOM治理

    概览 说起iOS的OOM问题大家第一想到的应该更多的是内存泄漏(Memory Leak),因为无论是从早期的MRC还是2011年Apple推出的ARC内存泄漏问题一直是iOS开发者比较重视的问题,比如 ...

  8. 【译】Announcing Entity Framework Core 5.0 Preview 5

    今天我们宣布EF Core 5.0发布第五个预览版. 1 先决条件 EF Core 5.0 的预览版要求  .NET Standard 2.1.这意味着: EF Core 5.0 在 .NET Cor ...

  9. 查看apk安装包信息

    ➜ sdk aapt dump badging ~/Downloads/PermRoot8006.apk package: name='com.qihoo.permmgr' versionCode=' ...

  10. Redis面试专题

    Redis面试专题 1. 什么是redis? Redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) 2. Reids的特点 Redis本质上是一个Ke ...