前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小白学Python – Django Web 开发教程 二

小白学Python – Django Web 开发教程 二

作者头像
用户1418987
发布2023-10-26 14:14:31
1640
发布2023-10-26 14:14:31
举报
文章被收录于专栏:coder
小白学Python  – Django Web 开发教程 二_数据库
小白学Python – Django Web 开发教程 二_数据库

创建视图函数

  • Python3
代码语言:javascript
复制
from django.http import HttpResponse

# 创建一个函数
def geeks_view(request):
	
	return HttpResponse("<h1>Welcome to GeeksforGeeks</h1>")

让我们一次一行地浏览这段代码:

  • 首先,我们从 django.http 模块导入 HttpResponse 类以及 Python 的日期时间库。
  • 接下来,我们定义一个名为 geeks_view 的函数。这就是视图功能。每个视图函数都将 HttpRequest 对象作为其第一个参数,该参数通常名为 request。
  • 该视图返回一个 HttpResponse 对象,其中包含生成的响应。每个视图函数负责返回一个 HttpResponse 对象。

视图类型

Django 视图分为两大类:-

  • 基于函数的视图
  • 基于类的视图
小白学Python  – Django Web 开发教程 二_django_02
小白学Python – Django Web 开发教程 二_django_02

基于函数的视图

基于函数的视图是使用 python 中的函数编写的,该函数接收 HttpRequest 对象作为参数并返回 HttpResponse 对象。基于功能的视图一般分为4种基本策略,即CRUD(Create、Retrieve、Update、Delete)。CRUD 是用于开发的任何框架的基础。 

基于类的视图

基于类的视图提供了另一种将视图实现为 Python 对象而不是函数的方法。它们不会取代基于函数的视图,但与基于函数的视图相比具有一定的差异和优势:

  • 与特定 HTTP 方法(GET、POST 等)相关的代码组织可以通过单独的方法而不是条件分支来解决。
  • 面向对象的技术,例如 mixin(多重继承),可用于将代码分解为可重用的组件。

URL 模式

这是 gfg_site/urls.py 的示例代码:

代码语言:javascript
复制
from django.urls import path
from . import views

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

包括其他 URLConf 模块

为 Django 中的每个应用程序提供一个 URLConf 模块是一个很好的做法。该模块需要包含在根 URLConf 模块中,如下所示:

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path, include

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

现在,如果访问 http://127.0.0.1:8000/ 那么我们的网站将是 – 

在 Django 管理界面中渲染模型

要在Django admin中渲染模型,我们需要修改 app/admin.py。进入 geeks_site_app 中的 admin.py 并输入以下代码。从models.py中导入对应的模型并注册到管理界面。

代码语言:javascript
复制
from django.contrib import admin
from .models import GeeksModel

#在这里注册您的模型。
admin.site.register(GeeksModel,)

现在让我们为我们的项目创建一个可以访问我们网站的管理区域的超级用户。要创建超级用户,请输入以下命令 - 

代码语言:javascript
复制
python manager.py createsuperuser
小白学Python  – Django Web 开发教程 二_PostgreSQL_03
小白学Python – Django Web 开发教程 二_PostgreSQL_03

现在在浏览器上访问http://127.0.0.1:8000/admin 访问管理界面面板。 

小白学Python  – Django Web 开发教程 二_PostgreSQL_04
小白学Python – Django Web 开发教程 二_PostgreSQL_04

提供为超级用户创建的用户名和密码,然后管理仪表板将打开,我们将能够看到我们刚刚创建的 Geeks 模型。

小白学Python  – Django Web 开发教程 二_django_05
小白学Python – Django Web 开发教程 二_django_05

现在让我们看看如何使用管理仪表板输入数据。现在点击极客模型我们会看到这样的东西 – 

小白学Python  – Django Web 开发教程 二_数据库_06
小白学Python – Django Web 开发教程 二_数据库_06

我们可以点击右上角的“添加极客模型”按钮,然后我们就可以看到用于添加数据的字段。见下图—— 

小白学Python  – Django Web 开发教程 二_django_07
小白学Python – Django Web 开发教程 二_django_07

添加所需的数据和图像字段后,我们将在管理仪表板上看到类似的内容 – 

小白学Python  – Django Web 开发教程 二_数据库_08
小白学Python – Django Web 开发教程 二_数据库_08

您还可以在代码编辑器中看到媒体文件夹 -

小白学Python  – Django Web 开发教程 二_django_09
小白学Python – Django Web 开发教程 二_django_09

将 Django 连接到不同的数据库

Django 内置了 SQLite 数据库。我们还可以在 settings.py 文件的 DATABASES 字典中看到这一点。

代码语言:javascript
复制
DATABASES = {
	'default': {
		'ENGINE': 'django.db.backends.sqlite3',
		'NAME': BASE_DIR / 'db.sqlite3',
	}
}

如果您想将其更改为另一个数据库,您可以更改上面的字典。假设我们想要将此数据库更改为 PostgreSQL。假设安装了所需的依赖项并设置了 PostgreSQL,那么 DATABASES 字典将如下所示

代码语言:javascript
复制
DATABASES = {
'default': {
	'ENGINE': 'django.db.backends.postgresql',
	'NAME': ‘<database_name>’,
	'USER': '<database_username>',
	'PASSWORD': '<password>',
	'HOST': '<database_hostname_or_ip>',
	'PORT': '<database_port>',
}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建视图函数
  • 视图类型
  • 基于函数的视图
  • 基于类的视图
  • URL 模式
  • 在 Django 管理界面中渲染模型
  • 将 Django 连接到不同的数据库
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档