从零搭建一个Django项目(一): 一个最简单的api

2,612 阅读1分钟

参考Django官方文档(2.2),基于Python3.5+Django2.2

安装

$ pip install django==2.2

$ python -m django --version  # 查看安装结果
2.2.4

创建项目

$ django-admin startproject mysite

# 得到的目录结构如下
mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

这些目录和文件的用处是:

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

启动项目

$ python manage.py runserver [port] #默认端口8000 可手动指定

这个runserver只是一个简易的web服务,只适用于调试,不要将其用作真实生产环境。(真实生产环境使用apache等服务)

创建应用

在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

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

$ python manage.py startapp polls

# 目录结构
polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

编写视图

视图可以理解为通过url匹配路由后锁执行的方法,具体编写方法如下

在 polls/views.py 中编写如下代码

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

如果想看见效果,我们需要将一个 URL 映射到它,在 polls 目录里新建一个 urls.py 文件

在 polls/urls.py 中,输入如下代码

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

完成之后需要将应用的URLconfs插入到项目的URLconfs中

在 mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

验证你的服务

服务运行起来后在浏览器中访问你的接口