zoukankan      html  css  js  c++  java
  • 初始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) 
  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/along21/p/12546727.html
Copyright © 2011-2022 走看看