Django框架小bai入门

花一点时间过了一下Django的新手教程项目,记录一下整体的思路。注意,本篇不讨论代码具体实现,只是从宏观上了解项目的内容。

一、总览

Django遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。Django其实也是一个MTV 的设计模式。MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图  。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:

层次

职责

模型(Model),即数据存取层

处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

模板(Template),即表现层

处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

视图(View),即业务逻辑层

存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

 

 

图1 MVC模式

 图2 Django的MTV模式

  1. 模型(model):模型是用来定义数据的,django会根据模型,自动配置数据库表的字段。
  2. 视图(view):视图就是怎么运用模型来获取数据,一般是一个取数据的函数,它的返回值一般是一个渲染器(render)。视图将数据取出,再传递给render。
  3. 模板(template):是一个html,在视图返回的时候,会一并交给render,而render的任务就是把所有数据封装成用户浏览器需要的模式。

 

(一)项目功能

 

一个笔记网站,允许用户注册、建立笔记、在笔记中增加条目、查看条目。

 

(二)Django项目中的文件

 

  • manage.py:是一个命令行程序,接受一系列命令,来控制项目
  • settings.py:指定项目管理、系统交互的参数
  • urls.py:网页URL与请求的映射关系
  • __init__.py

 

 

(三)创建项目的具体工作

  1. 在控制台初始化项目、数据库。
    1. django admin startproject <project_name>,这一步会生成(二)中的四个文件。
    2. python manage.py migrate,  首次调用会初始化数据库,django支持多种数据库,可通过命令行参数改变数据库软件,默认为SQLite。
    3. python manage.py runserver, 启动服务器。由于python是动态语言,启动服务器后,无法更改的仅限于数据库表和模型(因为二者是匹配的),而视图、模板仍可以随意修改,无需关闭服务器。
  2. 创建应用
    1. python manage.py startapp <app_name>
    2. 会生成一个以app_name命名的文件夹,里面有admin.py, __init__.py, models.py, tests.py, views.py
    3. models.py、views.py分别对应模型、视图

2.1 定义模型

模型一般用类表示,定义模型的类要继承django.db中的models.Model,其中定义了很多django的数据类型和方法。

2.2激活模型

模型定义好后,要在项目中激活它,具体做法就是把这个类放到settings.py中的installed_apps中

2.3迁移数据库

启用了新的模型,数据库表需要重新构造。使用python manage.py makemigrations <app_name>生成迁移文件;

使用python manange.py migrate应用迁移。

2.4使用管理网站

django自带一个管理网页,在使用前要先创建管理员。使用python manage.py createsuperuser创建超级管理员。

要实现对数据模型的管理,需要在项目admin.py中添加定义好的模型。

随后,访问域名/admin/就能进入管理页面了。

 

3.使用Django shell调试项目

输入python manage.py shell 呼出shell。shell是一个python解释器,可以与项目代码进行互动,检查代码是否工作正常。

 

4.创建网页

创建网页分为三部分,分别是定义视图、定义模板、设置url映射。

 

4.1 url映射

项目中的url.py整合了项目所有已经启用的url模块,每个应用文件夹下的url.py定义了自己负责的url和views的映射。

django处理url使用一种递归的方式,先通过项目url.py找到模块,再从模块url中找到映射的视图。

常用方法:path、include

 

4.2 创建视图

视图即返回数据的函数,定义在views.py中。

此函数需要包含一个固定参数request,用来接收django收到的用户请求。

函数的返回值需要一些数据(来自模型),还有一个网页模板,使用render方法将数据和模板合并,就是最后用户得到的网页。

 

4.3创建模板

django将在模板中填入视图提供的数据,因此模板关心的就是在哪里填入,用什么格式填入。模板实质上是一个html, 但有一部分是django定义的模板语法。

模板实现了html和python程序(主要是视图部分)的分离,你可以更改html页面的设计,而不用重写新的视图方法,这减少了许多工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值