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:

pip uninstall django
pip install django==3.2.18

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

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

# 数据库配置 默认的数据库为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依赖:

pip install mysqlclient

三、启动项目

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

控制台日志:

浏览器主页:

四、新建应用模块

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

python manage.py startapp app名

生成的应用模块目录 :

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

# 用来注册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表:

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表的映射类:

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和1isdel = models.IntegerField(null=False, choices=ISDEL_CHOICES)

未完待续 .......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时尚圈的节制美学 — 奥柔拉 AVRALA的独特设计理念

在这个多元化的时代,女性正在经历一场前所未有的角色变革。她们不再仅仅满足于传统的社会角色,而是勇敢地追求个人职业发展和自我实现。在这样的背景下,服饰不仅仅是外在的装饰,更是内心故事的讲述者、个性自我的表达者、身份归属…

NX/UG二次开发—3D几何—多边形内部最大圆

多边形内部最大圆,为什么不能说最大内切圆?如果正方形或正凸多边形,最大内部圆是与边相切的,但对于不规则多边形,很多情况是正好经过一些凹点。 本次介绍在NX中计算封闭边界内部最大圆: 1、首先按顺序排序…

Spring、SpringMVC

一、Spring框架中的单例Bean是线程安全的吗? 【默认单例的情况下】Spring Bean并没有可变的状态(如Service类和DAO类),即只能查不能改,所以没有并发问题,所以某种程度上来说Spring的单例Bean是线程安全的。…

【ZZULI数据结构实验】压缩与解码的钥匙:赫夫曼编码应用

📃博客主页: 小镇敲码人 💚代码仓库,欢迎访问 🚀 欢迎关注:👍点赞 👂🏽留言 😍收藏 🌏 任尔江湖满血骨,我自踏雪寻梅香。 万千浮云遮碧…

前端工程化之包管理器

这里写目录标题 什么是包包管理工具常用的包管理工具npmnpm 基本使用初始化搜索工具包下载安装包导入 npm 包基本流程生产依赖与开发依赖全局安装安装全部依赖安装指定版本的包删除依赖包 cnpm全局安装nrm 的使用 yarn全局安装yarn 常用命令 pnpm 【推荐使用】全局安装 什么是包…

我国吻合器市场规模不断扩大 国产化率有所增长

我国吻合器市场规模不断扩大 国产化率有所增长 吻合器是替代手工切除或缝合的一种医疗器械,其工作原理与订书机十分相似,可利用钛钉对组织进行离断或吻合。经过多年发展,吻合器种类逐渐增多,根据手术方式不同,吻合器大…

【JavaEE 初阶(三)】多线程代码案例

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多线程知识 目录 1.前言2.单例模式2.1饿汉方式2.2饿汉方式 3.阻塞队列3.1概念3.2实现 4.定时器4.1概念4.…

支付宝小程序如何去除页面下拉回弹

描述:支付宝小程序页面下拉时会产生回弹,如果页面上有拖拽功能,会有影响 解决方法: 页面xx.config.js中设置:allowsBounceVertical: “NO” 官方文档:https://opensupport.alipay.com/support/FAQ/7110b5d…

WT32-ETH01作为TCP Client进行通讯

目录 模块简介WT32-ETH01作为TCP Client设置电脑作为TCP Server设置连接并进行通讯总结 模块简介 WT32-ETH01网关主要功能特点: 采用双核Xtensa⑧32-bit LX6 MCU.集成SPI flash 32Mbit\ SRAM 520KB 支持TCP Server. TCP Client, UDP Server. UDP Client工作模式 支持串口、wif…

鸿蒙OpenHarmony技术:【Docker编译环境】

Docker环境介绍 OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完成复杂的开发环境准备工作。两种Docker环境及适用场景如下: 独立Docker环境:适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。基于HPM的Docker环…

uni-app+vue3 +uni.connectSocket 使用websocket

前言 最近在uni-appvue3websocket实现聊天功能,在使用websocket还是遇到很多问题 这次因为是app手机应用,就没有使用websocket对象,使用的是uni-app的uni.connectSocket 为了方便测试这次用的是node.js一个简单的dom,来联调模拟…

Apache Flume Agent内部原理

Apache Flume Agent内部原理 Apache Flume 是一个可扩展的、分布式的日志收集、聚合和传输系统。在 Flume 中,Agent 是一个独立的进程,负责接收、传输和处理数据。Agent 内部包含多个组件,每个组件都有不同的功能和责任。 1. Source&#xff…

三下乡社会实践投稿攻略在这里

在当今信息爆炸的时代,如何让自己的声音被更多人听到,成为许多人和企业所关心的问题。其中,向各大媒体网站投稿,成为了一种常见的宣传方式。但是,如何投稿各大媒体网站?新闻媒体发文策略又有哪些呢&#xf…

光耦推荐—高速风筒方案中用到哪些光耦型号

高速风筒是现代生活中常见的电器设备,广泛应用于家庭、商业和工业领域;光耦是一种能够将输入信号转换成输出信号的元器件,其作用在于将电气信号转换成光信号,从而实现电路的隔离和保护;采用光耦可实现对风机转速和温度…

【管理咨询宝藏99】离散制造智能工厂战略规划方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏99】离散制造智能工厂战略规划方案 【格式】PDF版本 【关键词】智能制造、先进制造业转型、数字化转型 【核心观点】 - 推进EHS、品质一致性、生…

Failed to start tomcat.service: Unit is not loaded properly: Bad message 如何解决?

错误 “Failed to start tomcat.service: Unit is not loaded properly: Bad message” 通常意味着的 tomcat.service systemd 配置文件存在语法错误或配置不正确。为了解决这个问题,一步步检查和修正这个服务文件。 1. 检查 tomcat.service 文件 首先&#xff0c…

CSS文字描边,文字间隔,div自定义形状切割

clip-path: polygon( 0 0, 68% 0, 100% 32%, 100% 100%, 0 100% );//这里切割出来是少一角的正方形 letter-spacing: 1vw; //文字间隔 -webkit-text-stroke: 1px #fff; //文字描边1px uniapp微信小程序顶部导航栏设置透明,下拉改变透明度 onP…

SQL注入(sqli-labs第一关)

sqli-labs第一关 方法一:手工注入 来到第一关,图上说我们需要一个数字的参数 于是我们先手工注入?id1 and 11 跟?id1 and 12发现页面没有报错 每张截图上面页面中有select查询语句,这是我在第一关的源码中加上了echo "$sql ";…

SSM【Spring SpringMVC Mybatis】——Mybatis(二)

如果对一些基础理论感兴趣可以看这一期👇 SSM【Spring SpringMVC Mybatis】——Mybatis 目录 1、Mybatis中参数传递问题 1.1 单个普通参数 1.2 多个普通参数 1.3 命名参数 1.4 POJO参数 1.5 Map参数 1.6 Collection|List|Array等参数 2、Mybatis参数传递【#与…

STL——stack容器【栈】

stack基本概念: 概念: 是一种先进后出的数据结构,它只有一个出口 因为只有一端可以调用,所以栈不支持遍历操作 栈的操作: 栈中进入数据称为:入栈(push) 栈中弹出数据称为:出栈(pop) 生活中…