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)
未完待续 .......