当前位置:首页 > 文章列表 > 文章 > python教程 > 解锁姜戈:初学者&# 生成点

解锁姜戈:初学者&# 生成点

来源:dev.to 2024-08-15 13:09:50 0浏览 收藏

你在学习文章相关的知识吗?本文《解锁姜戈:初学者 生成点》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

解锁姜戈:初学者

简介

django 是一个强大的 web 框架,可让您快速高效地构建健壮、可扩展的 web 应用程序。它是用 python 编写的,遵循“包含电池” 理念,这意味着它具有许多内置功能,使开发更快、更容易,从而适合原型设计。 无论您是创建小型个人项目还是大型企业应用程序,django 都有您需要的工具。

在本指南中,我将引导您了解 django 的 mvt 设计模式(模型、视图和模板),为构建您自己的 web 应用程序提供坚实的基础。最后,您将清楚地了解 django 的工作原理以及如何有效地使用其组件。

使用虚拟环境设置 django 项目

参考django的官方文档:django documentation

在深入研究核心组件之前,让我们设置一个虚拟环境来管理项目的依赖项。这有助于保持您的项目隔离并防止与其他 python 项目发生冲突。

注意:我强烈鼓励使用linux。如果您使用的是windows,请安装wsl来访问linux环境。

1.安装venv模块:

sudo apt install python3-venv

2. 创建虚拟环境:

python -m venv .venv

3.激活虚拟环境:

source .venv/bin/activate

4.安装django:

激活虚拟环境后,安装django:

python -m pip install django

5.创建django项目:

django-admin startproject myproj

将 myproj 替换为你想要的项目名称。

6. 创建应用程序:

在您的项目目录中,创建一个应用程序。

python manage.py startapp myapp

7. 将新创建的应用程序添加到位于以下位置的settings.py:

您的项目名称/您的项目名称/settings.py

installed_apps = [
    'myapp',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

您的项目现在已经设置了基本结构,包括管理.py 文件、项目设置和您的第一个应用程序

模特

模型 使用 python 类定义数据库表的结构以及它们之间的关系。每个模型类映射到一个数据库表,模型的每个属性对应一个数据库字段。 django 允许您使用继承自 django.db.models.model 的类来定义数据库架构,从而简化了此过程。

orm代表对象关系映射。在 django 中,orm 是一个强大的功能,它允许开发人员使用 python 代码而不是编写 sql 查询来与数据库交互。该抽象层将 python 类(模型)映射到数据库表,并将这些类的实例映射到表中的行。

介绍sqlite

django 使用sqlite 作为默认数据库,因为它非常容易设置。 sqlite 是一种轻量级数据库,它将所有数据保存在一个简单的文件中,因此您无需安装任何额外的内容即可开始保存和管理网站的数据。这使其成为开发和测试的绝佳选择,因为它使您可以专注于构建应用程序,而不必担心复杂的数据库设置。

在 django 中,一个名为 airport 的表,具有“code”和“city”等属性,被表示为一个 python 类,其中每个属性都定义为一个类变量。

class airport(models.model):
    code = models.charfield(max_length=3)
    city = models.charfield(max_length=64)

1. 定义模型:

在应用程序的 models.py 中,使用 django 的 orm 定义模型。

from django.db import models

class flight(models.model):
    # diri, kada flight naa tay origin kung asa gikan, destination, ug duration
    # nakabutang sa parameters ilang properties, such as length of the characters

    origin = models.foreignkey(airport, on_delete=models.cascade, related_name='departures')
    destination = models.foreignkey(airport, on_delete=models.cascade, related_name='arrivals')
    duration = models.integerfield()

    def __str__(self):
        return f'{self.id}: {self.origin} to {self.destination} | {self.duration} minutes.'

2. 迁移:

定义模型后,创建并应用迁移以更新数据库架构。

简单来说:

  • makemigrations 就像规划您想要对数据库进行的更改。
  • migrate 实际上是在数据库上执行这些更改。因此,在使用 makemigrations 进行规划之后,迁移就是执行并应用更改的时间。
python manage.py makemigrations
python manage.py migrate

3. 与模型交互:

使用 django 的 shell 与你的模型进行交互:python manage.py shell

示例:

>> from flights.models import flight

>> flight1 = flight(origin="davao", destination="manila", duration=569)
>> fligh1.save()

我创建了 flights 模型的一个实例。此实例 flight1 代表我的数据库的 flight 表中的一行。 flight 模型中定义了出发地、目的地和持续时间字段。
当您创建实例时。您正在将这些字段设置为特定值:

  • 产地:“达沃”
  • 目的地:“马尼拉”
  • 持续时间:569(代表飞行时间,以分钟为单位)

浏览量

视图 是框架的重要组成部分,用于处理用户在 web 应用程序中看到和交互的逻辑。视图负责处理用户请求,从数据库检索必要的数据,并返回适当的响应(通常是 html 页面、json 数据或重定向)。

简单来说,django 中的视图充当网页和数据之间的中间人。它们接受用户的请求,处理任何必要的数据,然后发回适当的响应,例如网页或文件。从本质上讲,视图决定应向用户显示哪些内容以及应如何呈现内容。

在本文中,我们将仅使用基于函数的视图

1. 基于函数的视图:

这些是接受 web 请求并返回 web 响应的 python 函数。 django 中最基本的视图是一个接收请求对象并返回响应对象的函数。

from django.http import httpresponse

def index(request):
    return httpresponse("hello, world!")

2. 基于类的视图:

与基于函数的视图相比,这些 python 类提供了更多结构并允许更复杂的功能。

from django.views import view
from django.http import httpresponse

class myview(view):
    def get(self, request):
        return httpresponse("hello, world!")

模板

模板 用于渲染 html 并向用户显示数据。它们允许您将 html 与 python 代码分开。 django 模板是在 web 应用程序中生成动态 html 内容的强大工具。通过将演示文稿 (html) 与后端逻辑(python 代码)分离,模板有助于保持代码整洁、可维护和可重用。

简单来说,django 中的模板就像蓝图,定义数据应如何在网页上显示。它们允许您将静态内容(如 html)与动态内容(如数据库中的数据)结合起来,以创建完全呈现的页面。您无需对每个细节进行硬编码,而是使用模板将设计和数据分开,从而更轻松地更新和管理您的网站。

1. 创建模板

首先在应用程序中为模板创建一个目录,并将该目录命名为 templates。在模板中创建另一个名为 myapp 的目录。

django-proj/myapp/templates/myapp

现在,您终于可以将所有模板放入您创建的内部目录中:

django-proj/myapp/templates/myapp/base.html

创建 base.html 允许您定义具有其他模板可以继承的通用结构(页眉、导航栏和页脚)的基本模板或布局。此功能对于保持不同页面之间的一致性非常有用。

示例:




     {% block title %} myapp {% endblock %} 


    

my site

{% block content %}{% endblock %}

footer content here

让我们创建另一个名为index.html的模板并将其放在base.html的同一目录中。

扩展模板index.html的示例:

{% extends "myapp/base.html" %}
{% block content %}
    

flights

    {% for flight in flights %}
  • flight: {{ flight.id }} {{ flight.origin }} to {{ flight.destination }}
  • {% endfor %}
{% endblock %}

{% extends "myapp/base.html" %} 告诉 django 使用 base.html 作为基本布局模板。 {% block content %} 定义一个内容块,该内容块将填充来自index.html 的内容。 base.html 中的内容块将替换为 index.html 中提供的内容。

2. 渲染模板

在 django 视图中,通常使用 render() 函数渲染模板,该函数将模板与上下文数据结合起来以生成最终的 html 输出。

from django.shortcuts import render

def index(request):
    return render(request, 'myapp/index.html')

django渲染index.html时,它将包含base.html中的结构,用index.html中指定的内容替换内容块。这样可以实现跨页面的一致设计,并且可以轻松更新整体布局,而无需更改每个单独的模板。

url 和路由

django 使用 url 模式将 url 映射到视图。这些模式在每个 django 应用程序中名为 urls.py 的文件中定义。

url 模式是使用 path() 函数定义的,将特定的 url 路径映射到视图函数或类。动态 url 段(例如 )允许从 url 捕获要在视图中使用的变量。 include() 函数通过包含其他应用程序的模式来实现模块化 url 管理。

简单来说,url 就像网站上不同页面的街道地址。路由是确保当某人输入特定地址 (url) 时,他们被定向到正确页面的系统。您在一个特殊文件中设置这些“地址”,以便 django 知道当人们访问您的网站时将他们发送到哪里。

1.配置 url:
在应用程序的 urls.py 中定义 url 模式:

from django.urls import path
from . import views

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

在项目的 urls.py 中包含应用程序的 url:

from django.contrib import admin
from django.urls import include, path

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

总结

恭喜!您已经迈出了学习 django 的第一步。我已经介绍了模型、视图、模板和 url 路由的基础知识。有了这些基础知识,您就可以构建自己的 django 应用程序了。继续试验,继续编码,并毫不犹豫地深入研究 django 文档和社区资源。

我希望本指南使这些概念更加清晰,并且您在此过程中学到了一些有价值的东西。

  • 0xshr00msz

好了,本文到此结束,带大家了解了《解锁姜戈:初学者 生成点》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
三星折叠屏跌落神坛?中国仅剩3%!三星折叠屏跌落神坛?中国仅剩3%!
上一篇
三星折叠屏跌落神坛?中国仅剩3%!
分类 PHP 函数的艺术与科学
下一篇
分类 PHP 函数的艺术与科学
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • AI Make Song:零门槛AI音乐创作平台,助你轻松制作个性化音乐
    AI Make Song
    AI Make Song是一款革命性的AI音乐生成平台,提供文本和歌词转音乐的双模式输入,支持多语言及商业友好版权体系。无论你是音乐爱好者、内容创作者还是广告从业者,都能在这里实现“用文字创造音乐”的梦想。平台已生成超百万首原创音乐,覆盖全球20个国家,用户满意度高达95%。
    16次使用
  • SongGenerator.io:零门槛AI音乐生成器,快速创作高质量音乐
    SongGenerator
    探索SongGenerator.io,零门槛、全免费的AI音乐生成器。无需注册,通过简单文本输入即可生成多风格音乐,适用于内容创作者、音乐爱好者和教育工作者。日均生成量超10万次,全球50国家用户信赖。
    12次使用
  •  BeArt AI换脸:免费在线工具,轻松实现照片、视频、GIF换脸
    BeArt AI换脸
    探索BeArt AI换脸工具,免费在线使用,无需下载软件,即可对照片、视频和GIF进行高质量换脸。体验快速、流畅、无水印的换脸效果,适用于娱乐创作、影视制作、广告营销等多种场景。
    12次使用
  • SEO标题协启动:AI驱动的智能对话与内容生成平台 - 提升创作效率
    协启动
    SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
    16次使用
  • Brev AI:零注册门槛的全功能免费AI音乐创作平台
    Brev AI
    探索Brev AI,一个无需注册即可免费使用的AI音乐创作平台,提供多功能工具如音乐生成、去人声、歌词创作等,适用于内容创作、商业配乐和个人创作,满足您的音乐需求。
    17次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码