Django如何搭建web应用
🛒Django的特点
Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。以下内容简要介绍了如何使用 Django 实现一个数据库驱动的 Web 应用。
https://docs.djangoproject.com/zh-hans/3.0/intro/overview/
对象关系映射器
可以使用强大的 数据-模型语句 来描述你的数据模型,这解决了数年以来在数据库模式中的难题。
享用便捷的 API
可以使用一套便捷而丰富的 Python API 访问你的数据。API是动态创建的,不需要代码生成
动态管理接口
当你的模型完成定义,Django 就会自动生成一个专业的生产级 管理接口 ——一个允许认证用户添加、更改和删除对象的 Web 站点。你只需在 admin 站点上注册你的模型即可:
规划 URLs
Django 推崇优美的 URL 设计,所以不要把诸如
.php
和.asp
之类的冗余的后缀放到 URL 里。需要创建一个叫做 URLconf 的 Python 模块。这是网站的目录,它包含了一张 URL 和 Python 回调函数之间的映射表。URLconf 也有利于将 Python 代码与 URL 进行解耦(译注:使各个模块分离,独立)
编写视图
视图函数的执行结果只可能有两种:返回一个包含请求页面元素的
HttpResponse
对象,或者是抛出Http404
这类异常。至于执行过程中的其它的动作则由你决定。设计模板
Django 允许设置搜索模板路径,这样可以最小化模板之间的冗余。在 Django 设置中,你可以通过 DIRS 参数指定一个路径列表用于检索模板。如果第一个路径中不包含任何模板,就继续检查第二个,以此类推。
🎈项目框架
1 | mysite/ |
这些目录和文件的用处是:
最外层的
mysite/
根目录只是你项目的容器, 根目录名称对Django没有影响,你可以将它重命名为任何你喜欢的名称。manage.py
: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and manage.py 获取所有manage.py
的细节。里面一层的
mysite/
目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如mysite.urls
).mysite/__init__.py
:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识。mysite/settings.py
:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。mysite/urls.py
:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。mysite/asgi.py
:作为你的项目的运行在 ASGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。mysite/wsgi.py
:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。
🍎应用框架
🍏应用与项目的关系
🔱创建应用的框架
创建一个 polls
目录,它的目录结构大致如下:
1 | polls/ |
这个目录结构包括了投票应用的全部内容。
❗应用的调试模块
为什么要进行调试?
参考
测试将节约你的时间
当某人写出错误的代码时,自动化测试还能帮助你定位错误代码的位置。
测试不仅能发现错误,而且能预防错误
测试就好像是从内部仔细检查你的代码,当有些地方出错时,这些地方将会变得很显眼——就算你自己没有意识到那里写错了。
测试使你的代码更有吸引力
复杂的应用可能由团队维护。测试的存在保证了协作者不会不小心破坏了了你的代码(也保证你不会不小心弄坏他们的)。
unittest 和django.test TestCase 类似
❓如何编写可重用程序
☯可重用很重要
可重用性是 Python 的根本。The Python Package Index (PyPI) 有许大量的包,都可被用在你自己的 Python 项目中。同样可以在 Django Packages 中查找已发布的可重用应用,也可将其引入到你的项目中。Django 本身也是一个 Python 包,也就是说你可以将已有的 Python 包或 Django 应用并入你的项目。你只需要编写属于你的那部分即可。
🚀你的项目和可复用应用¶
通过前面的教程,我们的工程应该看起来像这样:
1 | mysite/ |
目录 polls
现在可以被拷贝至一个新的 Django 工程,且立刻被复用。不过现在还不是发布它的时候。为了这样做,我们需要打包这个应用,便于其他人安装它。
💯打包你的应用
目前,打包 Python 程序需要工具,有许多工具可以完成此项工作。在此教程中,我们将使用 setuptools 来打包我们的程序。
具体
参考链接