Django入门(一)


一、安装Python

我应该使用哪个版本的 Python 来配合 Django?

Django 版本 Python 版本
2.2 3.5,3.6,3.7,3.8(2.2.8 添加),3.9(2.2.17 添加)
3.0 3.6,3.7,3.8,3.9 (3.0.11 添加)
3.1 3.6,3.7,3.8,3.9(3.1.3 添加)
3.2 3.6, 3.7, 3.8, 3.9, 3.10 (在 3.2.9 中就已经加入了)
4.0 3.8,3.9,3.10

对于每个版本的Python,官方仅支持最新的三级版本(A.B.C)。
在 Python下载页面 找到每个系列的微版本。

二、安装Diango

...\> py -m pip install Django
or
...\> pip install Django

验证:

...\> py -m django --version

模块路径:

并且在python路径D:\APP\Python39\Scripts会多出一个django-admin.exe,其用于创建项目。

三、编写第一个 Django 应用

1.创建项目

打开命令行,cd 到一个放置项目代码的目录,然后运行以下命令:

...\> django-admin startproject mysite

这里需要注意,因为我在系统环境变量设置了该路径D:\APP\Python39\Scripts,所以可以直接使用django-admin.

让我们看看 startproject 创建了些什么:

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

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

  • 最外层的 mysite/ 根目录只是你项目的容器, 根目录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。
  • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。
  • 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).
  • mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
  • mysite/settings.py:Django 项目的配置文件。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。
  • mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。
  • mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。

2.运行服务器

...\> py manage.py runserver


注意此时当前目录!

服务器正在运行,浏览器访问 https://127.0.0.1:8000/。

更换端口

默认情况下,runserver 命令会将服务器设置为监听本机内部 IP 的 8000 端口。

如果你想更换服务器的监听端口,请使用命令行参数。举个例子,下面的命令会使服务器监听 8080 端口:

...\> py manage.py runserver 8080

相关用法

3.创建应用

在你的 manage.py 同级目录下创建投票应用。这样它就可以作为顶级模块导入,而不是 mysite 的子模块。

请确定你现在处于 manage.py 所在的目录下,然后运行这行命令来创建一个应用:

...\> py manage.py startapp poll

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

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

这个目录结构包括了投票应用的全部内容。

4.编辑第一个视图

打开 poll/views.py,把下面这些 Python 代码输入进去:

from django.http import HttpResponse


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

5.URL映射

在 poll 目录里新建一个 urls.py 文件。

from django.urls import path
from . import views

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

在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下:

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

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

函数 path() 具有四个参数,两个必须参数:routeview,两个可选参数:kwargsname

URLconfs 中使用的 django.urls 函数

6.启动

...\> py manage.py runserver

浏览器访问 http://localhost:8000/poll/,你应该能够看见 "Hello, world. You're at the poll index." ,这是你在 index 视图中定义的。