欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

初始Django—Hello world

程序员文章站 2022-05-04 14:21:37
1. 准备环境 > python -V Python 3.7.3 > pip -V pip 20.0.2 from c:\python3\lib\site-packages\pip (python 3.7) > pip install django > python -m django --vers ......

1. 准备环境

> python -v
python 3.7.3
> pip -v
pip 20.0.2 from c:\python3\lib\site-packages\pip (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 项目的命令行工具。可以阅读  获取所有 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)网页访问测试

初始Django—Hello world

 

(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)