Python Web开发之Django框架应用实战指南

内容导读

Django框架简介

环境安装与配置

创建第一个项目

Django的MTV架构模式

一、Django框架简介

1、关于Django

Django是使用Python语言编写的一个开源Web应用框架,它遵循MTV架构、鼓励快速开发,是当前较为流行的一种Web开发框架。

  • 2003年秋,Django诞生于美国堪萨斯州The World Company公司的World Online部门。
  • 2005年夏天,Django框架开发完成,此时Jacob Kaplan-Moss(雅各布•卡普兰•莫斯)加入World Online,致力于推荐Django框架的开源工作。
  • 2005年7月,Django框架在BSD开源协议下发布。
  • 2008年6月,Django软件基金会成立。
  • 2008年9月,第一个Django正式版本Django 1.0发布。
  • 2、Django具备以下几个优点

    齐全的功能,完善的文档;

    强大的数据库访问组件,灵活的URL映射;

    丰富的模板语言,健全的后台管理系统;

    完整的错误信息提示,强大的缓存框架,国际化。

    二、环境安装与配置

    要注意Django与Python 版本的对应关系

    说明:在安装 Django 前,系统需要安装并配置好 Python。

    1、Windows 下安装 Django

    Python 下载地址:Download Python | Python.org,版本为3.12

    Django 下载地址:Download Django | Django,版本为5.1

    (1)Python 安装(已安装的可跳过)

    安装 Python 你只需要下载 python-x.x.x.msi 文件,然后一直点击 "Next" 按钮即可。

    安装完成后你需要设置 Python 环境变量。 右击计算机->属性->高级->环境变量->修改系统变量 path,添加 Python 安装地址。

    这里使用的是 D:\programd\python3.12,需要根据你实际情况来安装。

    (2)Django全局安装与配置

    下载 Django 压缩包,解压并和 Python安装目录放在同一个根目录,进入 Django 目录。

    执行 python setup.py install,然后开始安装,Django 将要被安装到 Python 的 Lib下site-packages。

    或者,使用python的pip包管理工具安装:

    py -m pip install Django==5.1

    安装完成后如下所示:

    然后是配置环境变量,将这几个目录添加到系统环境变量path中。

    D:\programd\python3.12\Lib\site-packages\django

    D:\programd\python3.12\Scripts

    添加完成后就可以使用Django的django-admin.py命令新建工程了。

    (3)检查是否安装成功

    输入py -m django –version命令检查:

    如下图:

    或者,在python命令行窗口,输入以下命令进行检查:

    >>> import django
    >>> django.get_version()

    如下图:

    如果输出了Django的版本号说明安装正确

    2、Linux 上安装 Django

    (1)yum 安装方法

    以下安装位于 Centos Linux 环境下安装,如果是 Linux 系统是 ubuntu 请使用 apt-get 命令。

    默认情况下 Linux 环境已经支持了Python。可以在终端输入Python命令来查看是否已经安装。

    Python 3.7.4 (default, Aug  1 2012, 05:14:39) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 

    (2)安装 setuptools

    # Python3 安装
    yum install python3-setuptools

    完成之后,就可以使用 easy_install 命令安装 django

    easy_install django

    之后我们在 Python 解释器输入以下代码:

    [root@chaoke django]# python
    Python 3.7.4 (default, May 15 2014, 14:49:08)
    [GCC 4.8.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import django
    >>> django.VERSION
    (3, 0, 6, 'final', 0)

    我们可以看到输出了Django的版本号,说明安装成功。

    (3)pip 命令安装方法

    如果未安装 pip 工具,可执行以下命令安装:

    $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
    $ sudo python get-pip.py    # 运行安装脚本

    安装Django:

    sudo pip3 install Django -i https://pypi.tuna.tsinghua.edu.cn/simple

    指定 Django 的下载版本(5.1可以改成你要的版本):

    sudo pip3 install Django==5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

    (4)源码安装方法

    下载源码包:Download Django | Django

    输入以下命令并安装:

    tar xzvf Django-X.Y.tar.gz    # 解压下载包
    cd Django-X.Y                 # 进入 Django 目录
    python setup.py install       # 执行安装命令

    安装成功后 Django 位于 Python 安装目录的 site-packages 目录下。

    三、创建第一个项目

    1、版本匹配

    版本说明:

  • Python 3.12
  • Django5.1
  • windows下,通过命令python  -V查看版本号:

    C:\Users\deer2099> python -V
    Python 3.12.0rc3
    
    C:\Users\deer2099>py -m django --version
    5.1

    说明:如果版本不匹配,请卸载后重新安装。

    2、创建Django项目

    (1)通过开发工具Pycharm创建项目

    点击Pycharm的File选New Project:

    Django web项目结构:

    在Pycharm中运行Django web项目:

    终端窗口显示:

    浏览器输入 127.0.0.1:8000,效果如下:

    (2)通过命令行创建

    磁盘中创建项目文件夹,比如:mypython,打开mypython的命令窗口

    执行django-admin startproject HelloMe创建HellMe项目

    创建完成后查看到项目的目录结构:

    目录说明:

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

    py manage.py runserver 0.0.0.0:8000

    运行效果如图:

    浏览器输入 127.0.0.1:8000 得到跟上边一样的效果。

    说明:按Ctrl+C可以退出服务器,在这里先不要退出。

    也可以通过Pycharm工具打开通过命令行生成的项目HelloMe。

    3、视图和 URL 配置

    在先前创建的 HelloMe 目录下的 HelloMe项目中新建一个 views.py 文件,并输入代码:

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

    接着,绑定 URL 与视图函数。

    打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

    from django.urls import path
     
    from . import views
     
    urlpatterns = [
        path("", views.hello, name="hello"),
    ]

    目录结构如下:

    完成后,在浏览输入127.0.0.1:8000,效果如下:

    说明:如果django服务关闭,则输入py manage.py runserver 0.0.0.0:8000重启服务器即可。

    urls.py中也可以修改为以下规则:

    from django.urls import path
     
    from . import views
     
    urlpatterns = [
        path('hello/', views.hello),
    ]

    通过浏览器打开 http://127.0.0.1:8000/hello,输出结果如下:

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

    4、path() 函数

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

    语法格式:

    path(route, view, kwargs=None, name=None)
  • route: 字符串,定义 URL 的路径部分。可以包含变量,例如 <int:my_variable>,以从 URL 中捕获参数并将其传递给视图函数。
  • view: 视图函数,处理与给定路由匹配的请求。可以是一个函数或一个基于类的视图。
  • kwargs(可选): 一个字典,包含传递给视图函数的额外关键字参数。
  • name(可选): 为 URL 路由指定一个唯一的名称,以便在代码的其他地方引用它。这对于在模板中生成 URL 或在代码中进行重定向等操作非常有用。
  • Django2.0以上中可以使用 re_path() 方法来兼容 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。

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

    四、Django的MTV架构

    Python Web项目遵循Django的MTV架构模式,类似于Java Web中的MVC设计模式。

    1、MTV架构简介

    Django使用MTV架构,类似其它框架的MVC模式,该架构由模型(Model)、模板(Template)、视图(View)三部分组成,各部分的职责如下。

    (1)模型:数据操作层,定义数据模型,封装对数据库层的访问。

    (2)模板:表现层,负责将页面呈现给用户。

    (3)视图:业务逻辑层,调用模型和模板,实现业务逻辑。

    2、MTV架构实现

    Django项目的数据模型定义在模型文件models.py中,模板文件存储在templates目录(需手动创建与配置)中,业务逻辑存储在视图文件views.py中。

    此外Django项目还有一个核心文件urls.py,用于实现路由分发功能。

    项目启动后,用户通过浏览器向Web服务器发起请求,Web服务器将请求传递到要处理该请求的Django项目,Django接收用户通过浏览器发起的请求,urls.py文件根据URL地址分发路由,将请求交给views.py中相应的视图。

    视图处理请求(此时涉及数据存取),并将处理结果与模板结合生成响应数据返回给Web服务器,服务器将数据返回到浏览器,最终呈现给用户。具体如下图所示。

    更多精彩内容请关注本站! 

    作者:天涯幺妹

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python Web开发之Django框架应用实战指南

    发表回复