什么是 django?
django 是一个为面临交付时间约束的完美主义者设计的 Python Web Framework 。Django 的发音为“姜戈”,官方 FAQ 提供了一段音频。
选择哪个版本?
根据当前最新的调查(Django Developers Survey 2022),有70%的开发者会在新项目中使用最新的稳定版本,并且有44%的开发者会在每一个稳定版本发布时对自己的项目进行升级。另外,Django 开发者比普通的 Python 开发者更倾向于使用新版的 Python。
Django 下载页面上列出了版本计划,目前最新稳定版为 4.1.7, 本系列笔记将以此版为准。
官方 FAQ 中也列出了不同版本 django 可使用的 Python 版本。我使用 Python 3.9,这是 CentOS 7 在不编译升级 OpenSSL 的情况下能够编译安装的最高版本。
安装 django
安装最新的稳定版本:
pip install django
或者,指定安装的版本:
pip install django==4.1.7
验证安装的版本:
python -m django --version
4.1.7
或者:
>>> import django
>>> print(django.get_version())
4.1.7
创建一个应用并运行
说明:官网提供了一个教程,新手应该先跟着教程完整做一遍。本系列笔记只是为了备忘和快速查找相关信息。
以下在 Python 虚拟环境完成,参考这篇文章。
- 创建项目
(.djenv) C:\django-projects>django-admin startproject mygarage
- 创建应用
(.djenv) C:\django-projects\mygarage>python manage.py startapp bicycle
- 在代码中安装应用
编辑项目目录下 mygarage\settings.py 中的INSTALLED_APPS
,添加 ‘bicycle’ 应用 :
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bicycle',
]
- 使用 VS Code 运行调试
使用 VS Code 打开项目文件夹 mygarage 及 settings.py,创建 Debug 所需的 launch.json。
按 F5 执行 Debug,终端窗口会出现以下内容:
(.djenv) PS C:\django-projects\mygarage> c:; cd 'c:\django-projects\mygarage'; & 'c:\django-projects\.djenv\Scripts\python.exe' 'c:\Users\user\.vscode\extensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '15473' '--' 'C:\django-projects\mygarage\manage.py' 'runserver'
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
March 16, 2023 - 13:15:16
Django version 4.1.7, using settings 'mygarage.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
因为没有配置数据库,所以会有 “You have 18 unapplied migration(s)…” 的错误提示,先不用管它。用浏览器打开 http://127.0.0.1:8000/ ,可以看到 django 已成功运行的页面。
5. 创建一个自行车页面
首先,我希望用户能够通过访问 http://127.0.0.1:8000/bicycle/ 看到我的自行车。于是,在 bicycle 目录下创建一个 urls.py,内容如下:
from django.urls import path
from .views import my_bicycle # 'my_bicycle' 是稍后我要创建的视图
urlpatterns = [
path('', my_bicycle),
]
同时,需要修改 mygarage 目录下的 urls.py,增加对上面文件的引用:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('bicycle/', include('bicycle.urls')), # 增加这一行
]
然后,在 bicycle/views.py 中编写视图 my_bicycle
:
from django.http import HttpResponse
def my_bicycle(request):
return HttpResponse('<h1>This is my bicycle.</h1>')
运行项目,打开 http://127.0.0.1:8000/bicycle/ 即可看到:
至此,Django 开箱完成。