Python框架Django入门教程

server/2024/9/24 8:01:50/

        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文件,配置数据库

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依赖:

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中

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表:

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

未完待续 .......


http://www.ppmy.cn/server/39698.html

相关文章

基于Springboot的家具网站

基于SpringbootVue的家具网站设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 商家 家具信息 家居资讯 后台管理 后台首页 用户管理 商家管理 家具类型管理 家具…

05-07 周二 Python使用并行程序取代串行加速运行,样例程序演示

简介 在进行FastBuild优化的时候,需要串行的获取需要的组件的特征,之前是串行进行的,但是由于之前的设计存在问题,因此,总是很低效,主要是如下的原因: 镜像需要先下载,然后检测运行环…

Matten:视频生成与Mamba-Attention

Matten:视频生成与Mamba-Attention 摘要IntroductionRelated WorkMethodology Matten: Video Generation with Mamba-Attention 摘要 在本文中,作者介绍了Matten,一种具有Mamba-Attention架构的尖端潜在扩散模型,用于视频生成。在极小的计算…

如何設置使用Socks5代理(Mac系統)

Socks5代理是一種常用的代理伺服器協議,與其他類型的代理相比,Socks5代理支持更多的網路協議,因此它可以用於更多的應用場景,如Web流覽,郵件等等。此外,Socks5代理還支持各種身份驗證方法,包括無…

大语言模型LLM原理篇

大模型席卷全球,彷佛得模型者得天下。对于IT行业来说,以后可能没有各种软件了,只有各种各样的智体(Agent)调用各种各样的API。在这种大势下,笔者也阅读了很多大模型相关的资料,和很多新手一样&a…

sql注入中的替换技巧。

目录 1:注释的替换 2:空格替换 3:大小写混合绕过及双写绕过 4:等号的绕过 5:单双引号的绕过 1:注释的替换 注释在sql注入中非常重要,因为会使用它来闭合我们注入的sql语句。 当以get方式提…

python笔记(16)模块

模块是组织代码、实现复用、提升开发效率的关键元素。它们如同积木块一样,构成了Python程序的基石。本 一、理解Python模块:定义与基本特性 1. 定义 模块,简单来说,就是包含Python定义和语句的文件。它可以是一个.py文件&#…

Linux Make命令详解

1 概述 make命令常用参数-C,-n, -j.其实make还有很多参数也很有用,本文描述将简单介绍。 使用make版本: $ make --version GNU Make 4.2.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2016 Free Software Foundation, Inc. License GPLv3: GNU GPL versio…