Python框架Django入门教程

Django是一个使用 Python 编程语言开发的、免费且开源的 Web 应用框架。它遵循 "DRY(Don't Repeat Yourself)" 原则,旨在简化创建功能丰富的、高效率的 Web 网站。Django 提供了模型-视图-控制器(MVC)架构的实现,以及ORM(对象关系映射)系统、内置了 admin 界面、URL 路由、模板引擎、表单处理和强大的安全特性。

开发环境:Python3 + PyCharm专业版

一、创建项目

打开PyCharm,新建Django项目(PyCharm社区版无法快速创建Django项目),设置新项目的路径和项目名,直接点击创建即可

在PyCharm的终端中可以使用pip命令来查看默认安装的依赖:

默认安装的是最新版本的Django,可根据实际需求,安装指定版本的Django:

bash 复制代码
pip uninstall django
pip install django==3.2.18

二、项目文件主要文件介绍

修改setting.py文件,配置数据库

python 复制代码
# 数据库配置 默认的数据库为sqlite
DATABASES = {
    'default': {
        'ENGINE': 'djangoDemo.db.backends.mysql',  # 数据库类型
        'NAME': 'db_name',  # 数据库名
        'USER': 'username',  # 用户名
        'PASSWORD': 'password',  # 密码
        'HOST': '127.0.0.1',  # 数据库服务器地址
        'PORT': 3306,  # 端口号(MySQL默认3306)
    }
}

打开终端,执行命令,安装mysql依赖:

bash 复制代码
pip install mysqlclient

三、启动项目

PyCharm运行manage.py启动项目,默认启动端口为8000,直接点击蓝色的 http://127.0.0.1:8000/ 即可跳转到浏览器访问Django的主页

控制台日志:

浏览器主页:

四、新建应用模块

在PyCharm的终端中执行命令,创建新的应用模块:

bash 复制代码
python manage.py startapp app名

生成的应用模块目录 :

修改setting.py文件,找到INSTALLED_APPS(约33行处),将新建的应用模块注册到Django中

python 复制代码
# 用来注册App 前6个是django自带的应用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',  # 注册新的app
]

五、写一个Hello World接口

修改urls.py路由配置文件,添加新的路由:

在新建的应用模块中的views.py中添加hell接口:

浏览器访问 http://127.0.0.1:8000/

六、写一个用户表的增删改查接口

创建user表:

sql 复制代码
CREATE TABLE `user`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4  NOT NULL COMMENT '名字',
  `account` varchar(20) CHARACTER SET utf8mb4  NOT NULL COMMENT '账号',
  `password` varchar(20) CHARACTER SET utf8mb4  NOT NULL COMMENT '密码',
  `age` int NULL DEFAULT NULL COMMENT '年龄',
  `gender` char(1) CHARACTER SET utf8mb4  NULL DEFAULT NULL COMMENT '性别',
  `money` decimal(10, 2) NOT NULL COMMENT '余额,人民币单位:元',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `isdel` int NOT NULL DEFAULT 0 COMMENT '该用户是否已删除,0未删除,1已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '小白', 'aaa@qq.com', '123456', 15, '男', 100.00, '2023-01-15 00:35:44', '2023-01-15 00:35:44', 0);
INSERT INTO `user` VALUES (2, '小明', 'bbb@qq.com', '123456', 16, '男', 58.00, '2023-01-15 00:35:44', '2023-01-15 00:35:44', 0);
INSERT INTO `user` VALUES (3, '大白', 'ccc@qq.com', '123456', 22, '女', 168.00, '2023-01-15 00:35:44', '2023-01-15 00:35:44', 0);
INSERT INTO `user` VALUES (4, '大明', 'ddd@qq.com', '123456', 21, '男', 12.50, '2023-01-15 00:35:44', '2023-01-15 00:35:44', 0);
INSERT INTO `user` VALUES (5, '小刚', 'eee@qq.com', '123456', 17, '男', 65.23, '2023-01-15 00:35:44', '2023-01-15 00:35:44', 1);

在models.py中创建user表的映射类:

python 复制代码
from django.db import models

# 模型层,实体类层
class User(models.Model):
    # 设置所需要映射的数据表,默认映射的表名是:应用名_全小写类名
    class Meta:
        db_table = "user"

    ISDEL_CHOICES = (
        (0, "未删除"),
        (1, "已删除")
    )

    # Django自带id字段,无需手动添加
    # id = models.IntegerField()
    # 将变量与数据库表字段进行映射,CharField限制该字段为字符串类型,限制该字段的长度、默认值
    name = models.CharField(max_length=20, default="")
    account = models.CharField(max_length=20, default="")
    password = models.CharField(max_length=16, default="", null=False)
    age = models.IntegerField()
    gender = models.CharField(max_length=1)
    money = models.DecimalField(max_digits=10, decimal_places=2)
    create_time = models.DateTimeField()
    update_time = models.DateTimeField()
    # choices限制字段的取值范围,只能是0和1
    isdel = models.IntegerField(null=False, choices=ISDEL_CHOICES)

未完待续 .......

相关推荐
一丝晨光18 分钟前
gcc 1.c和g++ 1.c编译阶段有什么区别?如何知道g++编译默认会定义_GNU_SOURCE?
c语言·开发语言·c++·gnu·clang·gcc·g++
qq_2739002320 分钟前
pytorch detach方法介绍
人工智能·pytorch·python
南城花随雪。29 分钟前
Spring框架之装饰者模式 (Decorator Pattern)
java·开发语言·装饰器模式
究极无敌暴龙战神X34 分钟前
前端学习之ES6+
开发语言·javascript·ecmascript
虞书欣的640 分钟前
Python小游戏24——小恐龙躲避游戏
开发语言·python·游戏·小程序·pygame
FHYAAAX1 小时前
【机器学习】任务十:从函数分析到机器学习应用与BP神经网络
开发语言·python
PyAIGCMaster1 小时前
python环境中,敏感数据的存储与读取问题解决方案
服务器·前端·python
汉克老师1 小时前
GESP4级考试语法知识(贪心算法(四))
开发语言·c++·算法·贪心算法·图论·1024程序员节
何曾参静谧1 小时前
「Py」模块篇 之 PyAutoGUI库自动化图形用户界面库
运维·python·自动化
pumpkin845142 小时前
客户端发送http请求进行流量控制
python·网络协议·http