• 初始Django—Hello world


    1. 准备环境

    > python -V
    Python 3.7.3
    > pip -V
    pip 20.0.2 from c:python3libsite-packagespip (python 3.7)
    > pip install django
    > python -m django --version
    2.2.9

    2. 创建along项目

    > django-admin startproject along

    将会创建一个 along 目录,它的目录结构大致如下:

    along/
        manage.py
        along/
            __init__.py
            settings.py
            urls.py
            asgi.py
            wsgi.py

    注:

    • 外部 along/ 根目录是项目的容器,它的名字对Django无关紧要,可以将其重命名为您喜欢的任何名称;
    • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。可以阅读 django-admin and manage.py 获取所有 manage.py 的细节。也可以 python .manage.py -h 查看用法。
    • 里面一层的 along/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 along.urls).
    • along/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
    • along/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。
    • along/urls.pyDjango 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。
    • along/asgi.py: 兼容ASGI的Web服务器为您的项目提供服务的入口点。
    • along/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。

    3. 创建hello world应用

    > cd .along

    > python manage.py startapp hello

    将会创建一个 hello 目录,它的目录结构大致如下:

    hello/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py

    4. 编写hello views

    编写 along/views.py

    from django.shortcuts import render
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello world~")

     这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。

    5. urls 映射

    (1)在 hello 目录里新建一个 urls.py 文件

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

     (2)下一步是要在根 URLconf 文件中指定我们创建的 hello.urls 模块。在 along/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下:

    from django.contrib import admin
    from django.urls import include, path
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('hello/', include('hello.urls')),
    ]

     注:

    • 函数 include() 允许引用其它 URLconfs。每当 Django 遇到 include() 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。
    • include() 的理念是使其可以即插即用。因为 hello 应用有它自己的 URLconf( hello/urls.py ),他们能够被放在其他任何路径下,这个应用都能够正常工作.

    (3)path()参数

    函数 path() 具有四个参数,两个必须参数:route 和 view,两个可选参数:kwargs 和 name

    • path() 参数: route

      route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

      这些准则不会匹配 GET 和 POST 参数或域名;例如:

      URLconf 在处理请求 https://www.example.com/myapp/ 时,它会尝试匹配 myapp/ 

      处理请求 https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/。

    • path() 参数: view

      当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入

    • path() 参数: kwargs

      任意个关键字参数可以作为一个字典传递给目标视图函数

    • path() 参数: name

      为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。

    6. 运行调用借口测试

    (1)启动服务

    > python manage.py runserver 127.0.0.1:9000

    注:

    • 127.0.0.1:监听地址
    • 9000:监听端口

     (2)网页访问测试

    (3)命令行访问

    > curl 127.0.0.1:9000/hello

     (4)python调用借口

    import requests
    
    url = "http://127.0.0.1:9000/hello/"
    result = requests.get(url)
    print(result.content) 
  • 相关阅读:
    反转字符串
    数组
    复杂度分析(二)
    复杂度分析(一)
    业务应该这么写--特性
    5种方法快速启动一个应用程序
    业务应该这么写--表达式树
    业务应该这么写--泛型
    业务应该这么写--异常处理
    关于关系型数据库外键,要减轻数据库压力的一些说法
  • 原文地址:https://www.cnblogs.com/along21/p/12546727.html
Copyright © 2020-2023  润新知