- Django 基本概念
- Django - 主页
- Django - 基础
- Django - 概述
- Django - 环境
- Django - 创建项目
- Django - 应用生命周期
- Django - 创建视图
- Django - URL 映射
- Django - 首页
- Django - 模板系统
- Django - MVT
- Django - 添加主模板
- Django 管理员
- Django 管理员 - 界面
- Django 管理员 - 创建用户
- Django 管理员 - 包含模型
- Django 管理员 - 设置显示字段
- Django 管理员 - 更新对象
- Django 模型
- Django - 模型
- Django - 插入数据
- Django - 更新数据
- Django - 删除数据
- Django - 更新模型
- Django 静态文件
- Django - 添加静态文件
- Django - 添加 CSS 文件
- Django 高级
- Django - 页面未找到 (404)
- Django - 页面重定向
- Django - 发送电子邮件
- Django - 通用视图
- Django - 表单处理
- Django - 文件上传
- Django - Apache 设置
- Django - Cookie 处理
- Django - 会话
- Django - 缓存
- Django - 评论
- Django - RSS
- Django - AJAX
- Django 有用资源
- Django - 快速指南
- Django - 有用资源
- Django - 讨论
Django - 首页
当使用startproject 命令创建一个新的 Django 项目时,URL https://127.0.0.1:8000/ 会显示一个默认的索引页面。这表明 Django 安装已成功完成。
使用以下命令创建项目:
django-admin startproject myproject
现在您的项目已创建并配置,请确保它正常工作:
python manage.py runserver
运行上述命令后,您将在屏幕上看到类似以下内容:
Validating models... 0 errors found March 09, 2022 - 12:24:26 Django version 4.0, using settings 'myproject.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.Quit the server with CONTROL-C.
开发服务器正在运行于http://127.0.0.1:8000/。在浏览器中打开此链接。
在主“myproject”文件夹中,使用manage.py命令:
python manage.py startapp myapp
您刚刚创建了myapp应用程序。Django 还创建了一个包含应用程序结构的“myapp”文件夹:
myapp/ __init__.py admin.py models.py tests.py views.py
- __init__.py - 确保 Python 将此文件夹视为一个包。
- admin.py - 此文件可帮助您在管理员界面中修改应用。
- models.py - 这是存储所有应用程序模型的地方。
- tests.py - 这是放置单元测试的地方。
- views.py - 这是放置应用程序视图的地方。
更新项目settings.py文件中的INSTALLED_APPS列表(添加您的应用名称):
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp',]
我们将在myapp中创建一个简单的视图,显示“欢迎使用我的应用!”。
打开“myapp\views.py”并添加以下视图函数:
from django.shortcuts import render # Create your views here. def index(request): # other view code here return render(request, index.html', {})
在此视图中,我们使用HttpResponse呈现 HTML 页面。要将此视图显示为页面,我们只需要将其映射到一个 URL。
将以下 Python 脚本另存为myapp/urls.py:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
下一步是将根URLconf指向myapp.urls模块。
在myproject/urls.py中,添加django.urls.include的导入并插入urlpatterns列表中的include(),这样您将拥有:
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('', include('myapp.urls')), path('admin/', admin.site.urls), ]
现在运行 Django 开发服务器:
python manage.py runserver
访问以下 URL 以验证是否呈现了hello() 视图:
https://127.0.0.1:8000/
您应该能够看到索引页面的输出。
具有多个应用的 Django 主页
但是,一个 Django 项目可能包含多个应用。因此,项目主页应包含指向各个应用主页的链接。
让我们在当前的 Django 项目中创建两个应用:
python manage.py startapp customers
以及:
python manage.py startapp products
重写项目的索引页面为:
<!Doctype html> <html> <body> <!--header--> <div style="height:10%;"> <h2 align="center">My Web Application</h2> <hr> </div> <div style="width:100%;"> <!—side bar--> <div style="width:20%; float:left; border-right-style:groove"> <ul> <b> <li><a href="admin/">Admin</a></li> <li><a href="customers/">Customers</a></li> <li><a href="Products/">Products</a></li> </b> </ul> </div> <!--contents--> <div style="margin-left:21%;"> <p> <h2 align="center">Main Index Page</h2> </p> </div> </div> <br><br><br> <!--footer--> <hr> <div> <h4 align="right">All rights reserved</h4> </div> </body> </html>
客户应用的索引页面应保存在 templates 目录中。它由 customers/views.py 文件中的视图呈现:
from django.shortcuts import render # Create your views here. def index(request): return render(request, "customerindex.html", {})
类似地,产品应用的索引页面已创建,其映射视图在“products/views.py”文件中定义:
from django.shortcuts import render # Create your views here. def index(request): return render(request, "productindex.html", {})
您还需要为每个应用定义urlpattern列表,如下所示:
from django.urls import path from . import views urlpatterns = [ path("", views.index, name="customer-index"), ]
同样,对products应用执行以下操作:
from django.urls import path from . import views urlpatterns = [ path("", views.index, name="product-index"), ]
更新myproject/urls.py文件的 URLCONF:
from django.contrib import admin from django.urls import path, include from . import views urlpatterns = [ path('admin/', admin.site.urls), path('products/', include("products.urls")), path('customers/', include("customers.urls")), path('', views.index, name='index'), ]
运行 Django 服务器并访问 Django 项目的根 URL(https://127.0.0.1:8000/):