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)

未完待续 .......

相关推荐
终极定律39 分钟前
qt:输入控件操作
开发语言·qt
明月清风徐徐1 小时前
Miniconda + VSCode 的Python环境搭建
ide·vscode·python
JenKinJia1 小时前
Windows10配置C++版本的Kafka,并进行发布和订阅测试
开发语言·c++
煤炭里de黑猫1 小时前
Lua C API :lua_insert 函数详解
开发语言·lua
笨鸟笃行1 小时前
爬虫第七篇数据爬取及解析
开发语言·爬虫·python
编程乐趣1 小时前
一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略来了!
开发语言·c#
java1234_小锋1 小时前
一周学会Flask3 Python Web开发-response响应格式
开发语言·python·flask·flask3
Jelena157795857921 小时前
使用Java爬虫获取1688 item_get_company 接口的公司档案信息
java·开发语言·爬虫
大数据追光猿1 小时前
Python中的Flask深入认知&搭建前端页面?
前端·css·python·前端框架·flask·html5
java1234_小锋1 小时前
一周学会Flask3 Python Web开发-flask3模块化blueprint配置
开发语言·python·flask·flask3