python模块详解 | Django
- 路由
- 视图
- 模版
- 静态文件
- 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 项目中的翻译文件编译成二进制格式,以便支持多语言功能。
-
数据库迁移 -
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
命令用于执行数据库迁移操作,将模型更改同步到数据库中。