登录
首页 >  文章 >  python教程

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

来源:dev.to

时间:2024-08-15 13:09:50 227浏览 收藏

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

解锁姜戈:初学者

简介

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删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>