初识Django

Django是一个由Python写成的Web应用框架。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。

MVCMTV模型

MVC

Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M)控制器(C)视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:

img

MTV

Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,DjangoMTV分别是值:

  • M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
  • T 代表模板 (Template):负责如何把页面展示给用户(html)。
  • V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template

除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的ModelTemplateMTV的响应模式如下所示:

img

一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

Django安装及基本命令

pycharm自带图形化,不许介绍,这里只介绍原始命令。

下载Django

默认会安装最新的Django版本

1
pip install django

创建项目

1
django-admin.py startproject myproject

运行该命令,当前目录会生成该项目目录结构:

1
2
3
4
5
6
7
myproject
|——manage.py
|——myproject
|——__init__.py
|——settings.py
|——urls.py
|——wsgi.py
  • manage.py —– Django项目里面的工具,通过它可以调用django shell和数据库等。
  • settings.py —- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
  • urls.py —– 负责把URL模式映射到应用程序。

创建应用

1
python manage.py startapp myapp

执行后的目录为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
myproject
|——manage.py
|——myproject
|——__init__.py
|——settings.py
|——urls.py
|——wsgi.py
|——myapp
|——__init__.py
|——admin.py
|——aps.py
|——models.py
|——tests.py
|——views.py
|——migrations
|——__init__.py

启动项目

1
python manage.py runserver 8000

使用浏览器打开http://localhost:8000 或127.0.0.1:8000即可看到Django正常运行

第一个实例

创建视图

myapp->views.py文件中:

1
2
3
4
5
from django.shortcuts import render


def index(request):
return render(request, 'index.html', {'title':"我就是一测试文件"})

创建模板

视图中我们使用render,里面包含了我们的模板名称和模板参数,接下来在templages/index.html文件中:

1
2
3
4
5
6
7
8
9
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ title }}</h1>
</body>
</html>

创建路由

上面视图和模板都建好了,就差一个能访问该视图的路由了,接下来在myproject/urls.py中创建该路由:

1
2
3
4
5
6
7
from django.contrib import admin
from django.urls import path
from wechat import views
urlpatterns = [
path('index/', views.index),
path('admin/', admin.site.urls),
]

访问示例

同样我们使用python manage.py runserver 8000命令来运行该程序,随后在浏览器中使用http://localhost:8000/index来访问该地址:

img

至此我们初次对Django的认识到此结束