python模块详解 | Django

  1. 路由
  2. 视图
  3. 模版
  4. 静态文件
  5. ORM

手撸一个框架?

网络通信 - socket

基于socket通信,cs架构(服务端、客户端)。所有web框架本质的通信过程都基于以下这个程序:

# -*- coding: utf-8 -*-
"""
@Author billy
@Date 07.10.23 04:44
@Describe 
"""
import socket

# 监听本机IP与端口
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('127.0.0.1', 8001))

# 让多少人等待
sock.listen(5)

while True:
    # 等待请求
    conn, addr = sock.accept()

    # 收到请求
    buf = conn.recv(2048)
    print(buf)

    # 返回数据
    conn.send(b'HTTP/1.1 200 OK\r\n\r\n')
    conn.send(b'Hello World')
    
    # 断开连接
    conn.close()

# 停止服务端程序
sock.close()

网络通信 - http

关于http协议

特点:无状态的短连接(短连接怎么体现:一次请求和一次响应之后,断开连接。)

应用:浏览器向服务端发送请求,就是通过http协议。

  • GET请求:
    • 只有请求头 + 没有请求体
    • 请求头之间用 \r\n
    • 请求头和请求体之间用 \r\n\r\n
  • POST请求:
    • 只有请求头 + 有请求体
    • 请求头之间用 \r\n
    • 请求头和请求体之间用 \r\n\r\n

基本命令

django-admin startproject proj # 新建项目
python manage.py startapp app # 新建应用 
python manage.py startapp app apps/app # 新建二级应用 
python manage.py runserver # 启动服务

虚拟环境

python -m venv venv # 创建虚拟环境,目录名为venv
source venv/bin/activate # 启动虚拟环境

重要内容

1. 路由

url.py。路由匹配()

2. 视图

view.py。

  • 编译国际化消息文件 - python manage.py compilemessages

    在 Django 项目中,开发者可以使用国际化(i18n)功能来支持多种语言。这包括将用户界面中的文本消息翻译为不同的语言,以便适应不同的目标受众。

    当你在 Django 项目中定义了翻译字符串(通常是通过 gettext 函数)并收集了这些翻译字符串到翻译文件中(.po 文件),你需要使用 python manage.py compilemessages 命令将这些翻译文件编译成机器可读的二进制格式(.mo 文件)。

    编译后的 .mo 文件可以更高效地被 Django 项目加载和使用,以便将翻译字符串正确地应用到用户界面中。

    总结来说,python manage.py compilemessages 命令用于将 Django 项目中的翻译文件编译成二进制格式,以便支持多语言功能。

    image-20230628223701544

  • 数据库迁移 - python manage.py migrate

    是 Django 命令行工具提供的一个命令,用于数据库迁移。

    在 Django 中,数据库迁移是一种管理数据库架构变化的机制。当你对 Django 项目的模型进行更改(例如添加、修改或删除模型字段),你需要执行数据库迁移来同步这些更改到数据库中。

    python manage.py migrate 命令会检查项目中的迁移文件(位于 migrations 文件夹中),并将尚未应用到数据库的迁移应用到数据库中。它会创建数据库表、修改字段、添加索引等操作,以确保数据库与最新的模型定义保持一致。

    通常,在你的 Django 项目中的任何模型更改之后,你都需要运行 python manage.py makemigrations 命令来生成迁移文件,然后再运行 python manage.py migrate 命令来应用这些迁移。

    总结来说,python manage.py migrate 命令用于执行数据库迁移操作,将模型更改同步到数据库中。


965 字