Django-入门

  • 使用 Django,您可以在几个小时内将 Web 应用程序从概念转变为启动。Django 解决了 Web 开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开源的。
  • Django 旨在帮助开发人员尽快将应用程序从概念变为完成。
  • Django 包含数十个可用于处理常见 Web 开发任务的额外功能。Django 负责用户身份验证、内容管理、站点地图、RSS 提要和更多任务 - 开箱即用。
  • Django 非常重视安全性,并帮助开发人员避免许多常见的安全错误,例如 SQL 注入、跨站点脚本、跨站点请求伪造和点击劫持。其用户身份验证系统提供了一种管理用户帐户和密码的安全方法。

Django 相关网址

开发环境

  • Python 3.12.7
  • Django==5.1.2
  • 如果这是你第一次使用 Django 的话,你需要一些初始化设置。也就是说,你需要用一些自动生成的代码配置一个 Django project —— 即一个 Django 项目实例需要的设置项集合,包括数据库配置、Django 配置和应用程序配置。

    1
    mkdir djangotutorial
  • 然后,运行以下命令来引导新的 Django 项目:

    1
    django-admin startproject mysite djangotutorial

    备注:你得避免使用 Python 或 Django 的内部保留字来命名你的项目。具体地说,你得避免使用像 django (会和 Django 自己产生冲突)或 test (会和 Python 的内置组件产生冲突)这样的名字。

  • 让我们看看 startproject 创建了些什么:

    1
    2
    3
    4
    5
    6
    7
    8
    djangotutorial/
    manage.py
    mysite/
    __init__.py
    settings.py
    urls.py
    asgi.py
    wsgi.py
  • 这些目录和文件的用处是:

    • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin 和 manage.py 获取所有 manage.py 的细节。
    • mysite/:一个目录,该目录是项目的实际 Python 包。它的名称是导入其中任何内容(例如 mysite.urls)时需要使用的 Python 包名称。
    • mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识
    • mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。
    • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。
    • mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。阅读 如何使用 ASGI 来部署 了解更多细节。
    • mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。
  • 让我们验证一下你的 Django 项目是否正常工作。如果还没有,请切换到 djangotutorial 目录,然后运行以下命令:
    1
    python manage.py runserver
  • 你应该会看到如下输出:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Watching for file changes with StatReloader
    Performing system checks...

    System check identified no issues (0 silenced).

    You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    October 27, 2024 - 17:00:49
    Django version 5.1.2, using settings 'mysite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.

    备注:忽略有关未应用最新数据库迁移的警告,稍后我们处理数据库。

  • 服务器现在正在运行,通过浏览器访问 http://127.0.0.1:8000/ 。你将看到一个“祝贺”页面,有一只火箭正在发射。你成功了!
  • 你已经启动了 Django 开发服务器,这是一个用纯 Python 编写的轻量级网络服务器。我们在 Django 中包含了这个服务器,所以你可以快速开发,而不需要处理配置生产服务器的问题 – 比如 Apache – 直到你准备好用于生产。
  • 现在是个提醒你的好时机:千万不要 将这个服务器用于和生产环境相关的任何地方。这个服务器只是为了开发而设计的。(我们在网络框架方面是专家,在网络服务器方面并不是。)
  • 若要在一个不同的端口上提供网站服务,请参阅 runserver 参考。
  • 用于开发的服务器在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。
  • 在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

  • 项目 VS 应用

    项目和应用有什么区别?应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者小型的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

  • 请确定你现在处于 manage.py 所在的目录下,然后运行这行命令来创建一个应用:

    1
    python manage.py startapp polls
  • 这将创建一个名为 polls 的目录,其布局如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    polls/
    __init__.py
    admin.py
    apps.py
    migrations/
    __init__.py
    models.py
    tests.py
    views.py
本文结束 感谢您的阅读
正在加载今日诗词....