Django版Hello word,一个最简单的django网页

1.1Djnago 起步

1.1.1 Django 简介

(1)基本介绍:

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

MVC优势:

  • 低耦合
  • 开发快捷
  • 部署方便
  • 可重用性高
  • 维护成本低

Python 加 Django 是快速开发、设计、部署网站的最佳组合。

特点

  • 强大的数据库功能
  • 自带强大的后台功能
  • 优雅的网址

(2)MVC 与 MTV模型

MVC 模型:

MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC 以一种插件式的、松耦合的方式连接在一起。

  • 模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
  • 视图(V)- 图形界面,负责与用户的交互(页面)。
  • 控制器(C)- 负责转发请求,对请求进行处理。

简易图:
Django版Hello word,一个最简单的django网页_第1张图片

用户操作流程图:
Django版Hello word,一个最简单的django网页_第2张图片


(3)MTV 模型

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

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

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

简易图:
Django版Hello word,一个最简单的django网页_第3张图片

用户操作流程图:
Django版Hello word,一个最简单的django网页_第4张图片

解析:

用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数:

  • a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。
  • b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。

视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

参考地址:

1.1.2 Django 的安装

在一般情况下,计算机都是不会自带Django的,即使安装了python也是,需要自己安装。

Django是以python开发的,因此要先保证系统上已经安装了python,如果还未入门python,请移步至

,基本入门之后,再来学习Django才容易些。

安装Django最贱的方法就是跟安装python库一样,使用pip命令安装即可。

pip install Django

安装好之后,先进入python的交互模式中,查看一下Django的版本。

>>import django
>>print(gjango.get_version)
2.2.3

1.1.3 创建第一个项目

首先创建一个放项目的文件夹,比如my_project,在这个文件下打开cmd,输入一下命令:

django-admin startproject project0

project0是项目名称,看一些目录,多了一个project0的文件,查看下项目的目录结构:

|-- project0
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目录说明:

  • project0:** 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • project0/init.py:** 一个空文件,告诉 Python 该目录是一个 Python 包。
  • project0/asgi.py:** 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
  • project0/settings.py:** 该 Django 项目的设置/配置。
  • project0/urls.py:** 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • project0/wsgi.py:** 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

接下来我们进入 project0 目录输入以下命令,启动服务器:

python manage.py runserver

打开浏览器输入网址:http://127.0.0.1:8000/,如果正常启动,输出结果如下:

Django版Hello word,一个最简单的django网页_第5张图片

就这样,已经实现了一个最基本的网页了,这是django的欢迎页面,看到这里说明之前的所有操作基本上都是正确的。

那么怎么样开发自己的页面呢?这就要从“应用”(application)开始说起。

1.1.4 创建第一个应用

(1)创建应用

还是在刚刚的目录中,即manage.py文件同级目录下进入cmd,输入一下命令:

python manage.py startapp helloword

“hello word”是所有程序员的传统,这里就用他来为第一个应用取名,然后会多出来一个hello word文件夹,查看一下目录结构:

project0
│  db.sqlite3
│  manage.py
│
├─helloword
│  │  admin.py
│  │  apps.py
│  │  models.py
│  │  tests.py
│  │  views.py
│  │  __init__.py
│  │
│  └─migrations
│        └─ __init__.py
│
└─project0
    │  settings.py
    │  urls.py
    │  wsgi.py
    └─ __init__.py

目录hello word是刚创建出来的app,用来放置博客文章相关的代码:后台管理文件admin.py,数据模型文件models.py,视图文件views.py,存放数据迁移文件的目录migrations

目前只需要了解的就这么多,后面的章节都会用到。剩下还有一些没讲到的文件可以暂时不管它,碰到时再查资料。

(2)注册APP

我们需要告诉Django我们刚创建了我们自己的一个APP,打开project0下的settings.py,找到INSTALLED_APPS写入如下代码:

project0/settings.py

INSTALLED_APPS = [
    # 其他代码
    ...

    # 新增'article'代码,激活app
    'article',
]

(3)配置访问路径

然后再给app配置访问路径url。

url可以理解为访问网站时输入的网址链接,配置好url后Django才知道怎样定位app。

打开project0目录下的urls.py,增加以下代码:

#project0/urls.py

from django.contrib import admin
# 记得引入include
from django.urls import path, include

# 存放映射关系的列表
urlpatterns = [
    path('admin/', admin.site.urls),

    # 新增代码,配置app的url
    path('hello/', include('helloword.urls', namespace='hello')),
]

记得在顶部引入include

path为Django的路由语法:

  • 参数hello/分配了app的访问路径;
  • include将路径分发给下一步处理;
  • namespace可以保证反查到唯一的url,即使不同的app使用了相同的url(后面会用到)。

现在已经把路径hello/分配给hello word这个app中的urls.py了,但是在app生成时并没有这个文件,因此需要自己在hello word文件夹中创建urls.py,在里面输入:

#helloword/urls.py

# 引入path
from django.urls import path
# 引入视图函数
from . import view
 
# 正在部署的应用的名称
app_name = 'hello'

urlpatterns = [
    # 第一个页面的路由
    path('word/',view.hello),
]

(4)视图

打开HelloWorld (app)目录的 view.py 文件,并输入代码:

from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello world ! ")

完成之后重新启动Django,查看效果:

python manage.py runserver

运行成功后,打开浏览器输入网址http://127.0.0.1:8000/hello/word/,效果如下:
Django版Hello word,一个最简单的django网页_第6张图片

**注意:**项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。

看到这个项目,基本上就可以说自己开始入门Django了。


(5)path() 函数

Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。

语法格式:

path(route, view, kwargs=None, name=None)
  • route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
  • view: 用于执行与正则表达式匹配的 URL 请求。
  • kwargs: 视图使用的字典类型的参数。
  • name: 用来反向获取 URL。

Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。

from django.urls import include, re_path

urlpatterns = [
    re_path(r'^index/$', views.index, name='index'),
    re_path(r'^bio/(?P\w+)/$', views.bio, name='bio'),
    re_path(r'^weblog/', include('blog.urls')),
    ...
]

你可能感兴趣的:(python,django)