Django 第一个项目

Django 提供了丰富的工具用来创建和管理 Django 项目。现在,我们来学习如何使用这些工具

在这本课程中,我们使用的 Python 和 Django 版本如下:

[root@localhost ~]# python
# Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'1.11.6'
>>>

Django 管理工具

Django 自带了管理工具 django-admin.py

django-admin.py 除了可以创建 Django 项目,还可以做很多管理工作

我们使用 django-admin.py --help 看看它的介绍

[root@localhost ~]# django-admin.py --help

Type 'django-admin.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

创建第一个项目

使用 django-admin.py 来创建 HelloWorld 项目

[root@localhost ~]# django-admin.py startproject HelloWorld

创建完成后我们可以查看下项目的目录结构:

[root@localhost ~]# cd HelloWorld
[root@localhost HelloWorld]# tree .
.
├── HelloWorld
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

1 directory, 5 files

目录说明:

  • HelloWorld: 项目的容器
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互
  • HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包
  • HelloWorld/settings.py: Django 项目的配置文件
  • HelloWorld/urls.py: Django 项目的 URL 配置文件
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行项目

接下来使用以下命令运行 HelloWorld 项目

[root@localhost HelloWorld]# python manage.py runserver 0.0.0.0:8000

0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。 如果不指定,默认端口号为 8000

在浏览器输入 http://localhost:8000/ ,如果正常启动,输出结果如下:

视图和 URL 配置

接下来我们来创建一个视图文件。

在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:

HelloWorld/HelloWorld/view.py 文件代码

#! /usr/bin/python
# -*- encoding: utf-8 -*-

'''
filename: view.py
author: 简单教程(www.twle.cn)
copyright: Copyright © 2015-2065 www.twle.cn. All rights reserved.
'''

from django.http import HttpResponse


def hello(request):
    return HttpResponse("Hello world !<br/>Hello 简单教程(www.twle.cn)! ")

然后,绑定 URL 与视图函数。

打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

HelloWorld/HelloWorld/urls.py 文件代码

#! /usr/bin/python
# -*- encoding: utf-8 -*-

'''
filename: view.py
author: 简单教程(www.twle.cn)
copyright: Copyright © 2015-2065 www.twle.cn. All rights reserved.
'''


from django.conf.urls import url
from django.contrib import admin

from . import view


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', view.hello),
]

整个目录结构如下:

$ tree .
.
├── HelloWorld
   ├── __init__.py
   ├── __pycache__
      ├── __init__.cpython-36.pyc
      ├── settings.cpython-36.pyc
      ├── urls.cpython-36.pyc
      ├── view.cpython-36.pyc
      └── wsgi.cpython-36.pyc
   ├── settings.py
   ├── urls.py
   ├── view.py
   └── wsgi.py
├── db.sqlite3
└── manage.py

2 directories, 12 files

使用以下命令启动 Django 开发服务器

[root@localhost HelloWorld]# python manage.py runserver 0.0.0.0:8000

提示 项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启

如果你一直运行着,就没必要重新启动服务器了

并在浏览器访问打开浏览器并访问 http://localhost:8000/,显示如下

我们也可以将 URL 规则修改成:

HelloWorld/HelloWorld/urls.py 文件代码

#! /usr/bin/python
# -*- encoding: utf-8 -*-

'''
filename: view.py
author: 简单教程(www.twle.cn)
copyright: Copyright © 2015-2065 www.twle.cn. All rights reserved.
'''


from django.conf.urls import url
from django.contrib import admin

from . import view


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hello$', view.hello),
]

然后通过浏览器打开 http://127.0.0.1:8000/hello,显示如下

url() 函数

Django url() 可以接收四个参数,分别分别是两个必选参数:regex、view、kwargs、name

url() 函数语法格式如下

url(regex, view, kwargs=None, name=None)

参数列表

参数 说明
regex 必须。正则表达式,与之匹配的 URL 会执行对应的第二个参数 view
view 必须。用于执行与正则表达式匹配的 URL 请求
kwargs 可选。视图使用的字典类型的参数
name 可选。用来反向获取 URL
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.