Django简介

Django是一个开源的web应用框架,由python编写,它拥有着非常齐备的官方文档,提供一站式的解决方案,包括缓存,数据orm,后台管理,验证,表单处理等多项功能,它可以快速搭建高性能的、优雅的网站。在基于python的web开发框架中,Django是一个生态相对比较完善,易于上手而且性能比较优秀的框架,本专栏记录自己从零开始学习Django的历程,首先记录Django的一些基础知识和内容,并且附以简单的案例代码进行学习,后面在具体的项目中进行实战开发,欢迎大家交流和指导。

MVT模式

Django中的MVT模式分别是指模型(Model)、视图(View)和模板(Template),这三个主要模块的功能如下:

  • 模型:数据层,处理与数据相关的所有事物(和本地数据库进行交互,进行数据的定义)
  • 视图:视图层,用来处理用户发出的请求(实现具体的函数功能)
  • 模版:模版层,通过视图函数渲染html模版,得到动态的前端页面(进行前端的展示)

三者之间的关系,可以由下图进行说明:

django python 性能 python django功能_python

用户的访问过程是这样的:在浏览器中输入网址,这一网址称为后端服务器的路由,每个路由对应一个特定的视图函数;也就是说访问这一路由地址,就是调用这一路由地址对应的视图函数,其中视图函数在视图层进行实现;视图函数根据其实现的逻辑功能,和数据库进行交互,进行数据的读取,其中数据库的定义部分在模型层实现;最后视图层将读取到的数据进行处理和计算之后发送给模版层,进行渲染展示给用户。上面介绍的就是前后端不分离的web结构图。

此外,最近也比较流行前后端分离的web结构,具体的结构如下:

django python 性能 python django功能_python_02

在前后端分离的web结构中,显式地分为前端服务器和后端服务器。用户的访问过程是这样的:用户在浏览器中输入网址,网址链接到前端服务器,前端立刻对页面进行渲染,渲染的页面立刻显示在浏览器;同时向后端服务器请求数据,后端服务器收到请求之后进行逻辑处理,数据库读取等操作之后,将结果返回给前端服务器,前端服务器获取到数据之后,也紧接着显示在浏览器中。

Django中的常用操作

本专栏使用django=2.1.2版本,下面介绍在Django项目中一些常用的操作:

  • django-admin startproject 项目名  ->  创建一个django项目
  • python manage.py startapp 应用名  ->  项目中创建一个应用
  • python manage.py shell  ->  进入调试代码的调试模式
  • python manage.py makemigrations  ->  数据库创建更改文件
  • python manage.py migrate  ->  同步到数据库进行更新
  • python manage.py flush  ->  清空数据库
  • python manage.py runserver 0.0.0.0:8000  ->  启动开发服务器
  • python manage.py + 回车 可查看更多命令

Django项目文件介绍

创建Django项目的方法如下:

1、执行django-admin startproject one,创建名为“one”的项目。会在当前目录下生成一个名为“one”的文件夹。

2、进入到“one”文件夹,执行python manage.py startapp app,会在“one”文件夹下生成一个名为“app”的文件夹。

经过上述两步操作之后,得到的文件结构如下:

django python 性能 python django功能_django python 性能_03

项目文件one

首先介绍项目文件夹“one”,其下有四个py文件:

  • __init__.py:表明这是一个python包(自动生成)。
  • settings.py:整个项目的配置文件,例如注册应用,设置模板、数据库,语言,时区等等都在这里进行。
  • urls.py:项目的路由文件,设置网站的网址信息。
  • wsgi.py:用于项目在服务器上面进行部署和上线

应用文件app_one

接下来介绍应用文件夹下的内容:

  • migrations:该文件夹存储数据库相关的文件,用于数据迁移的工作。
  • __init__.py:表明这是一个python包(自动生成)。
  • admin.py:后台应用的管理系统(自动生成)。
  • apps.py:应用的配置信息(自动生成)。
  • models.py:和数据库进行交互的模块,重点模块,即MVT中的M。
  • tests.py:用于自动化测试的模块,使用较少。
  • views.py:逻辑处理的模块:即MVT中的V。

manage.py:创建Django项目时默认生成的文件,用于之后的应用创建,服务启动,数据迁移等等。

参考资料:

https://coding.imooc.com/class/393.html