.manage.py 数据库自动生成,管理本项目的命令行工具

Django

Django项目文件:以下py文件负责组织和管理APP,APP则是实现不同功能的模块,一个Django项目可以由多个APP组成,每个APP都是一个相对独立且可重用的模块,可以代表特定的功能模块,例如用户认证、博客文章、新闻发布等。每个APP都包含自己的模型(models)、视图(views)、模板(templates)和静态文件(static files)等。

.manage.py 数据库自动生成,管理本项目的命令行工具

.init.py 告诉python该目录是一个python包,初始化工具

setting.py 项目配置文件,定义了本项目引用的对象

urls.py 项目路由映射,即客户端访问时由那个模块响应

wsgi.py python服务器网关接口,帮助你的Django应用程序与Web服务器通信。

asgi.py 增加了异步处理功能,与wsgi.PY功能类似

数据迁移:对Django模型(即数据库表的表示)的修改应用到数据库表结构的过程。这可以包括添加新的字段、删除旧的字段、更改现有字段的类型或添加新的关系等。model改变后,要重新迁移。实际上就是创建数据库表

python manage.py makemigrations      python manage.py migrate

sqlite下载驱动:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建并注册APP

在setting.py文件中注册APP

python manage.py startpp App

init.pyAPP成为一个包
admin.py管理站点模型的声明文件,默认空
apps.py应用信息定义文件,在其中生成appconfig,定义应用数据
models.py添加模型层数据类文件
views.py定义URL相应函数,定义各种视图函数
migrations包自动生成,迁移文件
tests.py测试代码文件

Django

使用HTTP协议进行前后端交互。HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于在网络中传输超文本(例如网页)。

在Django中,前端通过HTTP请求与后端进行交互。常见的HTTP请求方法包括GET、POST、PUT、DELETE等,它们分别用于获取资源、提交数据、更新资源和删除资源等操作。

Django提供了内置的路由系统,用于将HTTP请求映射到相应的视图函数(view function)。视图函数是处理特定URL的Python函数,它可以处理请求并生成响应。在视图函数中,你可以执行各种操作,例如查询数据库、处理表单数据、渲染模板等。

Django还提供了ORM(对象关系映射)工具,用于简化与数据库的交互。你可以使用ORM来定义数据模型(model),并在视图函数中执行数据库查询操作。

前端后端

前端开发也被称为客户端开发,主要负责在应用程序或网站的屏幕上看到的所有内容。这些内容通常包括网页的页面开发,如网页上的特效、布局、图片、视频、音频等。前端的工作内容包括将美工设计的效果图转换成浏览器可以运行的网页,并配合后端做网页的数据显示和交互等可视方面的工作。

后端也被称为服务器端开发,他们的职责主要是在系统“后面”所发生的事情。这包括在后端服务器和浏览器或应用程序之间存储网站、应用数据和中间媒介的服务器。后端的工作范畴还包括应用程序或网站屏幕上看不到的所有内容,通常这些内容是与前端工程师进行数据交互及网站数据的保存和读取。后端涉及到的逻辑代码通常比前端要多,他们需要考虑到底层业务逻辑的实现,以及平台的稳定性和性能等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

姜戈架构

Django 基于 MVT(模型-视图-模板)架构,它有以下三个部分:

  • 模型model: 该模型将充当数据的接口。它负责维护数据。它是整个应用程序背后的逻辑数据结构,由数据库(通常是关系数据库,如MySql,Postgres)表示。
  • 视图view: 视图是您在呈现网站时在浏览器中看到的用户界面。它由 HTML/CSS/Javascript 和 Jinja 文件表示。
  • **模板template:**模板由所需 HTML 输出的静态部分以及描述如何插入动态内容的一些特殊语法组成。
image-20230925163817242

Django MVT 模式的工作流程如下:

  1. 用户发送请求给 Django 服务器。
  2. Django 服务器根据请求的 URL 路由到相应的 View 函数。
  3. View 函数根据请求的类型和参数,从 Model 中获取数据,并将数据传递给 Template。
  4. Template 根据 View 传递的数据生成 HTML 页面,并返回给 Django 服务器。
  5. Django 服务器将 HTML 页面返回给用户。

路由**

根路由:项目文件urls.py里APP的路由,在项目级别上定义的路由,它包含了整个项目的路由信息

子路由:子路由是指在一个已经存在的路由路径下,再添加一个新的路由路径,以实现更细粒度的路由

**路由分发:**在 Django 中,路由分发是一个将 URL 请求分发到相应视图函数的过程。当一个 URL 请求来到 Django 项目时,它首先会被路由系统接收。

Django 的路由系统会查看 URL 请求,并将其分发到相应的视图函数。视图函数是 Django 中用于处理 HTTP 请求并返回 HTTP 响应的函数。

在 Django 中,路由分发通过项目主目录下的 urls.py 文件来实现。在这个文件中,你可以定义 URL 模式和其对应的视图函数。

例如,你可以定义一个名为 ‘archive’ 的 URL 模式,并将其与一个名为 ‘archive’ 的视图函数关联起来。这样,当一个 URL 请求匹配 ‘archive’ 模式时,它就会被路由到 ‘archive’ 视图函数进行处理。

在 urls.py 文件中,你可以使用正则表达式或者路径语法来定义 URL 模式。例如,你可以使用以下代码来定义一个名为 ‘archive’ 的 URL 模式:

from django.urls import path  
from . import views  
  
urlpatterns = [  
    path('archive/', views.archive),  
]

在这个例子中,当一个 URL 请求匹配 ‘archive/’ 模式时,它就会被路由到名为 ‘archive’ 的视图函数进行处理。

在 Django 中,路由分发是反向解析的基础。反向解析是指通过 URL 模式的名称来查找相应的 URL。这使得你可以在 Django 模板中使用 {% url %} 标签来引用 URL 模式,而不需要硬编码 URL。

反向解析:在Django中,反向解析是一种通过别名或者名字来查找URL的模式。这可以让你在模板中或者其他地方引用URL,而不需要硬编码它们。

例如,假设你有一个名为archive的视图,它对应的URL是/archive/。你可以在模板中使用{% url 'archive' %}来引用这个URL。这就是反向解析。

在Django中定义URL模式时,你可以给它们起一个名字。例如:

from django.urls import path  
from . import views  
  
urlpatterns = [  
    path('archive/', views.archive, name='archive'),  
]

在这个例子中,'archive'就是URL模式的名字。你可以在模板中使用这个名字来引用URL。

反向解析在Django模板中使用{% url %}标签来实现。例如:

html复制代码

<a href="{% url 'archive' %}">Archive</a>

这将会生成一个指向/archive/的链接。

使用反向解析的好处是,如果你更改了URL的模式或者结构,你只需要更改一个地方,而不是所有引用这个URL的地方。这可以大大简化维护工作。

命名空间

在 Django 中,命名空间通常指的是一种将 URL 模式与视图函数相关联的方式。这使得可以在不同的地方定义 URL 模式,而不必担心它们会与其他地方的已有定义发生冲突。

例如,在一个 Django 项目中,可以有一个名为 ‘archive’ 的应用,它有一个名为 ‘archive’ 的 URL 模式和一个相应的视图函数。如果这个项目还有其他应用,它们也可以定义名为 ‘archive’ 的 URL 模式和视图函数,而不会与第一个定义发生冲突。

在 Django 中,命名空间可以通过在 urls.py 文件中为每个应用定义一个单独的模块来实现。每个模块都可以定义自己的 URL 模式和视图函数,而不会影响其他模块的定义。

例如,以下是一个名为 ‘archive’ 的应用的 urls.py 文件:

from django.urls import path
from . import views

app_name = 'archive'

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

在这个文件中,定义了两个 URL 模式:一个默认的 ‘’,另一个是 ‘archive/’。它们都与相应的视图函数相关联。

在 Django 的模板中,可以使用 {% url %} 标签来引用 URL 模式,其中可以使用命名空间来指定应用的名称。例如:

<a href="{% url 'archive:archive' %}">Archive</a>

在这个例子中,‘archive:archive’ 使用了命名空间 ‘archive’ 和 URL 模式 ‘archive’。这样就可以将这个链接与正确的 URL 模式和视图函数相关联起来。

**用户传参:**即超链接

在 Django 中,用户传参通常涉及到在视图函数中接收和处理用户输入的数据。Django 提供了多种方式来处理用户传参,包括使用 HTTP 请求参数、表单和序列化器等。

  1. HTTP 请求参数:Django 的视图函数可以接收 HTTP 请求对象作为参数,通过该对象可以访问请求中的参数。例如,可以在视图函数中接收 GET 或 POST 请求的参数:
from django.http import HttpResponse

def my_view(request):
    name = request.GET.get('name')  # 获取 GET 请求中的参数
    data = request.POST.get('data')  # 获取 POST 请求中的参数
    # 处理参数并返回响应
    return HttpResponse('Hello, {}! Data: {}'.format(name, data))
  1. 表单:Django 提供了强大的表单处理机制,可以方便地处理用户通过表单提交的数据。你可以定义一个表单类,其中包含多个字段,并在视图函数中使用 request.POST 来接收表单数据:
from django import forms
from django.http import HttpResponse

class MyForm(forms.Form):
    name = forms.CharField(max_length=100)
    data = forms.CharField(max_length=100)

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            data = form.cleaned_data['data']
            # 处理参数并返回响应
            return HttpResponse('Hello, {}! Data: {}'.format(name, data))
    else:
        form = MyForm()
    return render(request, 'my_template.html', {'form': form})

在模板中,你可以使用 {{ form }} 来渲染表单,让用户填写数据。
3. 序列化器:当处理复杂的数据结构(如 JSON)时,可以使用 Django 的序列化器来解析和验证数据。序列化器可用于处理请求中的数据,并将其转换为 Python 对象或将数据转换为响应中的格式。例如:

from django.http import JsonResponse
from rest_framework import serializers

class MySerializer(serializers.Serializer):
    name = serializers.CharField(max_length=100)
    data = serializers.CharField(max_length=100)

def my_view(request):
    serializer = MySerializer(data=request.data)
    if serializer.is_valid():
        name = serializer.validated_data['name']
        data = serializer.validated_data['data']
        # 处理参数并返回响应
        return JsonResponse({'message': 'Hello, {}! Data: {}'.format(name, data)})
    else:
        return JsonResponse({'error': 'Invalid data'})

这里使用了 Django REST Framework 的序列化器来处理 JSON 数据。当请求中的数据不符合序列化器的规范时,将返回一个包含错误信息的 JSON 响应。

re_path是Django中的一个强大工具,它允许在写URL的时候使用正则表达式,从而使URL匹配更灵活。

在定义URL模式时,可以使用原生字符串(即:已r开头的字符串),这样可以让正则表达式更易读。在正则表达式中定义变量,需要使用小括号括起来,例如:r"(?P\d{4})"。 另外,还可以使用圆括号来捕获参数,这样就可以给每个捕获的参数起一个名字,然后在正则表达式之外使用这个名字来引用这些参数。

需要注意的是,除非特殊需求(如:需要使用正则表达式匹配url),否则直接使用path就够用了,这样可以让代码更简洁。

重定向:

在计算机编程中,重定向是一个常见的概念,主要用于改变程序中数据流动的方向,或者改变用户输入输出的位置。

在web开发中,重定向用于将用户从一个URL导向到另一个URL。这通常在以下几种情况下使用:

  1. 永久重定向:这是最常见的类型,用于将用户永久地从旧URL重定向到新URL。这通常是因为网站的URL结构已经改变,或者页面已经被完全删除并被新的页面替代。
  2. 临时重定向:这种重定向通常用于临时解决方案。例如,你可能有一个正在进行维护的页面,你希望在维护期间将所有访问该页面的用户重定向到一个通知页面。
  3. 外部重定向:这种重定向用于将用户从一个网站重定向到另一个网站。例如,当用户点击一个特定的链接时,他们将被重定向到另一个网站。

在Django框架中,你可以使用redirect()函数来实现重定向。例如,你可以如下面这样重定向到一个特定的视图:

from django.shortcuts import redirect

def my_view(request):
    ...
    return redirect('/other-view/')

在上面的代码中,当my_view被调用时,它将返回一个重定向响应,将用户导向'/other-view/'这个URL。

重定向到另一个网站。

在Django框架中,你可以使用redirect()函数来实现重定向。例如,你可以如下面这样重定向到一个特定的视图:

from django.shortcuts import redirect

def my_view(request):
    ...
    return redirect('/other-view/')

在上面的代码中,当my_view被调用时,它将返回一个重定向响应,将用户导向'/other-view/'这个URL。

请注意,redirect()函数的具体用法可能会根据Django版本和上下文略有不同。如果你在使用中遇到问题,你应该查阅最新的Django文档以获取最准确的信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Django manage.py命令是Django框架中的一个命令工具,用于执各种管理任务,如创建数据库、运开发服务器、执数据库迁移等。通过在终端中输入“python manage.py”加上相应的命令,可以执各种管理任务。例如,“python manage.py runserver”可以启动开发服务器,“python manage.py migrate”可以执数据库迁移。 ### 回答2: django的manage.py命令是一个用于管理和执各种django项目操作的命令工具。 通过在终端或命令中运manage.py命令,可以执以下操作: 1. 启动开发服务器:使用`python manage.py runserver`命令可以启动一个开发服务器,用于在开发环境中运django应用程序。 2. 迁移数据库:使用`python manage.py makemigrations`命令可以创建数据库迁移文件,用于修改数据库结构。然后使用`python manage.py migrate`命令可以应用这些迁移文件,更新数据库结构。 3. 创建超级用户:使用`python manage.py createsuperuser`命令可以创建一个拥有管理员权限的超级用户,用于管理django应用程序。 4. 执单元测试:使用`python manage.py test`命令可以执django应用程序中的单元测试。 5. 生成管理后台模板代码:使用`python manage.py startapp`命令可以创建一个新的django应用程序,并使用`python manage.py startapp myapp`命令可以生成一个包含默认模板代码的admin.py文件,用于自定义管理后台。 6. 收集静态文件:使用`python manage.py collectstatic`命令可以将静态文件(如CSS、JS和图像文件)从各个应用程序收集到一个单独的目录中,以便在生产环境中进静态文件的管理。 总之,manage.py命令是django中非常强大和实用的命令工具,可以方便地进各种管理和操作。它简化了django项目的开发和管理流程,提高了开发效率。 ### 回答3: Django是一个开源的Python web开发框架,提供了一系列方便的工具和库来简化开发过程。其中,manage.py是Django的命令工具,用于执各种管理操作。 manage.py的使用非常简单,只需在命令中输入python manage.py以及相关参数即可调用不同的命令。以下是一些常见的manage.py命令及其功能: 1. runserver:运开发服务器,用于本地开发和调试。通过指定IP地址和端口号,可以启动一个轻量级的Web服务器来快速测试应用程序。 2. startapp:创建新的Django应用程序。通过指定应用程序名称,manage.py自动创建必要的目录结构和文件,帮助开发人员快速搭建应用程序的基础。 3. makemigrations:生成数据库迁移脚本。当我们对模型文件进修改或新增时,manage.py可以帮助我们自动生成相应的数据库迁移脚本,方便数据库更新和版本控制。 4. migrate:执数据库迁移操作。通过运manage.py migrate命令,Django会按照之前生成的迁移脚本,将修改应用到数据库中。 5. shell:启动Django的交互式Python shell。这个shell环境已预加载有Django的配置,可以方便地进数据库查询操作和调试。 除了以上常用命令外,manage.py还提供了许多其他功能,如创建超级用户、导入/导出数据等。通过查阅Django文档,可以了解到管理命令的完整列表和详细使用说明。 总结:manage.py是Django框架提供的命令工具,用于执各种管理操作,包括运开发服务器、创建应用程序、生成数据库迁移脚本、执数据库迁移等。它是Django开发中的一个重要工具,方便开发人员快速进开发、调试和管理工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蘑菇Ms程序化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值