Django 创建第一个项目

2024-03-08 1058阅读

温馨提示:这篇文章已超过436天没有更新,请注意相关的内容是否还可用!

Django 创建第一个项目

本章我们将介绍 Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目。

测试版本说明:

  • Python 3.9.7

  • Django 4.2.7

    通过以下命令可以查看版本号:

    # python3 -V
    Python 3.9.7
    # python3 -m django --version
    4.2.7

    Django 管理工具

    安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin,Windows 如果没有配置环境变量可以用 django-admin。

    我们可以来看下django-admin 的命令介绍:

    $ django-admin
    Type 'django-admin help ' for help on a specific subcommand.
    Available subcommands:
    [django]
        check
        compilemessages
        createcachetable
        dbshell
        diffsettings
        dumpdata
        flush
        inspectdb
        loaddata
        makemessages
        makemigrations
        migrate
        runserver
        sendtestemail
        shell
        showmigrations
        sqlflush
        sqlmigrate
        sqlsequencereset
        squashmigrations
        startapp
        startproject
        test
        testserver
    ……省略部分……

    创建第一个项目

    使用 django-admin 来创建 HelloWorld 项目:

    django-admin startproject HelloWorld

    创建完成后我们可以查看下项目的目录结构:

    $ cd HelloWorld/
    $ tree
    .
    |-- HelloWorld
    |   |-- __init__.py
    |   |-- asgi.py
    |   |-- settings.py
    |   |-- urls.py
    |   `-- wsgi.py
    `-- manage.py

    目录说明:

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

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

      python3 manage.py runserver 0.0.0.0:8000

      0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

      在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,如果正常启动,输出结果如下:

      Django 创建第一个项目

      视图和 URL 配置

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

      HelloWorld/HelloWorld/views.py 文件代码:

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

      接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

      HelloWorld/HelloWorld/urls.py 文件代码:

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

      整个目录结构如下:

      $ tree
      .
      |-- HelloWorld
      |   |-- __init__.py
      |   |-- __init__.pyc
      |   |-- settings.py
      |   |-- settings.pyc
      |   |-- urls.py              # url 配置
      |   |-- urls.pyc
      |   |-- views.py              # 添加的视图文件
      |   |-- views.pyc             # 编译后的视图文件
      |   |-- wsgi.py
      |   `-- wsgi.pyc
      `-- manage.py

      完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:

      Django 创建第一个项目

      我们也可以修改以下规则:

      HelloWorld/HelloWorld/urls.py 文件代码:

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

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

      Django 创建第一个项目

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


      path() 函数

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

      语法格式:

      path(route, view, kwargs=None, name=None)
      • route: 字符串,定义 URL 的路径部分。可以包含变量,例如 ,以从 URL 中捕获参数并将其传递给视图函数。

      • view: 视图函数,处理与给定路由匹配的请求。可以是一个函数或一个基于类的视图。

      • kwargs(可选): 一个字典,包含传递给视图函数的额外关键字参数。

      • name(可选): 为 URL 路由指定一个唯一的名称,以便在代码的其他地方引用它。这对于在模板中生成 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')),
            ...
        ]
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]