美文网首页
书籍[精通Django18LTS]的阅读--第一章

书籍[精通Django18LTS]的阅读--第一章

作者: _Cappuccino_ | 来源:发表于2019-05-28 15:43 被阅读0次

安装python
安装虚拟环境
安装django
安装数据库

初始认知

新建项目:django-admin startproject mysite
我们来看一下 startproject 为我们创建了什么:

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

这些文件是:
• 外层的 mysite/ 根目录是项目的容器。这个目录的名称对 Django 没有什么作用,你可以根据喜好重命名。
• manage.py是一个命令行实用脚本,可以通过不同的方式与Django项目交互。这个文件的详细说明参见 Django Project 网站。
• 内部的 mysite/ 目录是项目的 Python 包。导入这里面的内容时要使用目录的名称(如mysite.urls)。
• mysite/init.py是一个空文件,目的是让Python把这个目录识别为Python包。(如果你刚接触Python,关于包的说明请阅读 Python 官方文档。)
• mysite/settings.py是Django项目的设置/配置。附录D对设置做了详细说明。
• mysite/urls.py 是 Django 项目的 URL 声明,即 Django 驱动的网站的“目录”。第 2 章和第 7 章将进一 步说明 URL。
• mysite/wsgi.py 是兼容 WSGI 的 Web 服务器的入口点,用于伺服项目。详情参见第 13 章。

Django 的设置

接下来,编辑 mysite/settings.py。这是一个普通的 Python 模块,在模块层定义了一些变量,表示 Django 的设置。编辑 settings.py 的第一步是把 TIME_ZONE 设为你所在的时区。注意文件顶部的 INSTALLED_APPS 设 置,其值是这个 Django 实例中激活的全部 Django 应用。一个应用可以在多个项目中使用,而且应用可以打 包,供其他项目使用。默认情况下,INSTALLED_APPS 包含下述应用,这些都是 Django 自带的:
• django.contrib.admin:管理后台
• django.contrib.auth:身份验证系统
• django.contrib.contenttypes:内容类型框架
• django.contrib.sessions:会话框架
• django.contrib.messages:消息框架
• django.contrib.staticfiles:管理静态文件的框架
Django 项目默认包含这些应用,这是为常见场景所做的约定。其中某些应用要使用数据库表,因此使用之前 要在数据库中创建所需的表。为此,运行下述命令:
python manage.py migrate
migrate 命令查看 INSTALLED_APPS 设置,根据 settings.py 文件中的数据库设置,以及应用自带的数据库迁移
(后文说明)创建所需的数据库表。每执行一个迁移都会看到一个消息。

开发服务器

下面确认 Django 项目是否能运行。进入外层 mysite 目录(如果你现处别的位置),然后运行下述命令: python manage.py runserver
在命令行中将看到下述输出:
Performing system checks...
0 errors found June 12, 2016 - 08:48:58 Django version 1.8.13, using settings 'mysite
.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
我们启动的是 Django 开发服务器,这是一个轻量级 Web 服务器,完全使用 Python 编写。Django 自带这个服 务器,以便快速开发,而不用花时间配置生产服务器(如 Apache)——这一步在准备好部署到生产环境时再 做。
注意,别在任何生产环境中使用这个服务器,它只能在开发过程中使用。

MVC设计模式--模型-视图-控制器设计模式

MVC 这个概念存在很长时间了,但是随着互联网的发展才被更多的人熟知,因为它是设计客户端-服务器应 用的最佳方式。所有最好的 Web 框架都围绕 MVC 概念构建。虽然可能引起激烈的争论,但我还是要说,不 使用 MVC 设计 Web 应用是错误的做法。就概念层次而言,MVC 设计模式非常容易理解:
• 模型(M)是数据的表述。它不是真正的数据,而是数据的接口。使用模型从数据库中获取数据时, 无需知道底层数据库错综复杂的知识。模型通常还会为数据库提供一层抽象,这样同一个模型就能使 用不同的数据库。
• 视图(V)是你看到的界面。它是模型的表现层。在电脑中,视图是你在浏览器中看到的 Web 应用的页面,或者是桌面应用的 UI。视图还提供了收集用户输入的接口。
• 控制器(C)控制模型和视图之间的信息流动。它通过程序逻辑判断通过模型从数据库中获取什么信 息,以及把什么信息传给视图。它还通过视图从用户那里收集信息,并且实现业务逻辑:变更视图, 或者通过模型修改数据,或者二者兼具。
真正让人困惑的是如何理解各层的作用,不同的框架往往会使用不同的方式实现同样的功能。一个框架“专 家”可能会说某个函数属于视图,另一个专家可能强烈反对,觉得应该放在控制器中。
对于真正做事的程序员来说,我们无需关心这个问题,因为完全没关系。只要理解 Django 实现 MVC 模式的 方式,我们就能自由运用,把工作做好。不过,在讨论组中看人激烈争论是打发无聊的不错方式......

Django中的MTV模式设计
Django 严格遵守 MVC 模式,但是有自己的实现逻辑。“C”部分由框架处理,多数时候,我们的工作在模 型、模板和视图中,因此 Django 经常被称为 MTV 框架。在 MTV 开发模式中:
• M 表示“模型”,即数据访问层。这一层包含所有与数据相关的功能:访问数据的方式、验证数据的方 式、数据的行为、数据之间的关系。第 4 章将深入探讨 Django 的模型。
• T 表示“模板”,即表现层。这一层包含表现相关的决策:在网页或其他文档类型中如何显示某个东 西。第 3 章将探讨 Django 的模板。
• V 表示“视图”,即业务逻辑层。这一层包含访问模型和选择合适模板的逻辑。你可以把视图看做模型 和模板之间的桥梁。下一章将讨论 Django 的视图。
在名称的使用上,这可能是 Django 唯一的不足,因为 Django 的视图更像是 MVC 中的控制器,而 MVC 中的 视图是 Django 中的模板。乍一看有点难以理解,不过作为做事的程序员来说,无需纠结这个问题。教授 Django 的人才应该深究。当然,喜欢叫板的人也是。

相关文章

网友评论

      本文标题:书籍[精通Django18LTS]的阅读--第一章

      本文链接:https://www.haomeiwen.com/subject/cwedtctx.html