Django 是 Python web框架,发音 [ˈdʒæŋɡo] ,翻译成中文叫“姜狗”。
为什么要学框架?其实我们自己完全可以用 Python 代码从0到1写一个web网站,但那样就要写网络服务、数据库读写等底层代码。而框架的作用是把这些底层基建已经搭建好了,我们只写业务逻辑即可。
举个例子,楼房就是框架,我们不关心底层的脚手架、钢筋水泥是如何搭建的,只要有了这样的框架我们就可以住进去,而里面的房间要怎么设计、装饰才是我们关心的。
1 初识Django
我使用的 Python 版本是 3.8,先执行下面语句先安装 Django
pip install Django
``
安装完成后,执行下面语句创建 Django 项目
django-admin startproject duma
项目的名称可以自定义,我创建的项目名是 duma。
命令执行完毕后,在当前目录会生成 duma 目录,该目录包含以下源文件。
duma/
manage.py
duma/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
简单介绍下这几个文件的作用:
-
manage.py: 管理 Django 项目的命令行工具,就像一个工具箱,后面会经常用到
mysite/settings.py:Django 项目的配置文件,如:配置该项目使用什么数据库、包含哪些应用等
mysite/urls.py:Django 项目的 URL 声明
mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。暂时用不到
mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。暂时用不到
后面的学习中,我们会使用、修改这上面的文件,那时候对他们的作用会有更深的体会。
运行下面命令,启动web服务,验证 duma 项目是否创建成功。
python manage.py runserver
执行命令,会看到有以下信息输出
Starting development server at http://127.0.0.1:8000/
在浏览器访问 http://127.0.0.1:8000/
看到上面的页面,说明项目创建成功。
接下来我们要在 duma 项目中创建一个应用(app)。一个项目里可以有多个应用,如电商项目里可以有商城应用、支付应用和会员应用等等。
执行这行命令,创建一个应用
python manage.py startapp ncov
这里创建了一个名为 ncov 的应用,用它来做一个疫情数据报告。项目根目录会发现有个 ncov 目录,包含以下文件
ncov/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
先不介绍它们的作用,这些文件后面基本都会用到,到时候会详细介绍。
2 Hello, World
“Hello, World” 是学习任何编程语言的演示程序,现在我们用 Django 实现一个“Hello, World” web应用。
首先,在 “nocv/views.py” 文件中创建 index 函数
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello, World!')
然后,在 ncov 目录中创建 urls.py 文件,它用来定义 ncov 应用包含的 url。如:在电商商城应用中,会有商城首页 url 和商品详情的 url。
在 urls.py 文件中添加一个url,使之与 index 函数对应起来。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
第一个参数是 url 的路径,这里是空字符串代表 ncov 应用的根路径;第二个参数是该 url 对应的视图;第三个参数是该 url 的名称,可自定义。
最后,在 “duma/urls.py” 添加代码,将 ncov 应用的 url 注册到 duma 项目中,添加后的代码如下
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls