当前位置: 首页 > news >正文

Django快速上手

1. 安装Django

Django 4.x的版本只支持MySQL8及以上的版本了。如果mysql版本比较老,需要使用老版本的django。此处指定django版本为3.2.20

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django==3.2.20

2. 创建项目

  1. 创建项目

    1. 在指定目录使用命令行创建项目 django01

      django-admin startproject django01
      
  2. 创建app

    1. 在项目内manage.py的同级目录使用命令行创建 app01

      python manage.py startapp app01
      
  3. 注册app

    1. 查看 app01 --> apps.py

      from django.apps import AppConfigclass App01Config(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'app01'
      
    2. 在 django01 --> settings.py 的INSTALLED_APPS中注册app,增加app01

      INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config'	# 对应app01的路径
      ]
      
  4. 编写url和视图函数的映射关系(路由)

    1. 在django01 --> urls.py 中新增path,对应到app01 views.py的路径

      from django.contrib import admin
      from django.urls import pathfrom app01 import viewsurlpatterns = [# path('admin/', admin.site.urls),path('index/', views.index),
      ]
      
    2. 在 app01 --> views.py中创建函数 index

      from django.http import HttpResponse
      from django.shortcuts import render# Create your views here.def index(request):return HttpResponse("HelloWorld")
  5. 启动项目

    1. 方法一:命令行启动

      python manage.py runserver
      
    2. 方法二:pycharm启动

  6. web访问测试 http://localhost:8000/index/

3. orm操作MySQL

  1. 安装mysqlclient

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mysqlclient
    
  2. 连接数据库

    在django01 --> settings.py 中配置

    # Database
    # https://docs.djangoproject.com/en/4.2/ref/settings/#databases# DATABASES = {
    #     'default': {
    #         'ENGINE': 'django.db.backends.sqlite3',
    #         'NAME': BASE_DIR / 'db.sqlite3',
    #     }
    # }DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',   # 数据库引擎'NAME': 'gotest',   # 库名'USER': 'root','PASSWORD': 'uGS7jx9sYU7nt0c','HOST': '192.168.7.228','PORT': 3306,}
    }
    
  3. 操作表

    1. 创建表

      • 在app01 --> models.py 中创建类 UserInfo (建表的时候表名为app01_userinfo, 会自动添加主键id)

        from django.db import modelsclass UserInfo(models.Model):name = models.CharField(max_length=32)password = models.CharField(max_length=64)age = models.IntegerField()
        
      • 在 manage.py 同级目录执行命令建表

        python manage.py makemigrations
        python manage.py migrate
        
    2. 修改表

      • 删除列:将对象内的字段注释或者删掉,然后执行建表命令

      • 新增列:由于已存在的列中可能有数据,所以新增列必须执行对应的数据。然后再执行建表命令

        # 列默认值为2
        data1 = models.IntegerField(default=2)
        # 默认值为空
        data2 = models.IntegerField(null=True, blank=True)
        
    3. CURD

      form app01 import models# 新增
      models.UserInfo.objects.create(name="小赵", password="123", age=20)
      models.UserInfo.objects.create(name="小钱", password="123", age=20)
      models.UserInfo.objects.create(name="小孙", password="123", age=20)# 删除
      models.UserInfo.objects.filter(id=3).delete()# 查询
      # 查所有
      # data_list 是QuerySet类型
      data_list = models.UserInfo.objects.all()
      for obj in data_list:print(f"{obj.name}, {obj.password}, {obj.age}")# 查一行
      obj = models.UserInfo.objects.filter(id=1).first()
      print(obj.id)# 改
      models.UserInfo.objects.filter(id=1).update(password="999")
      
    4. 外键

      使用django自动创建表时,如果是外键,在对象中需要做特殊处理

      """
      1. to 表示与哪张表关联
      2. to_field 表示关联的字段
      3. 返回参数是depart,创建表时,外键字段会定义为depart_id
      4. 需要配置on_delete属性:当另一张表被删除时,对应有两种处理(级联删除、置空)
      """
      # 级联删除
      depart = models.ForeignKey(to="Department", to_fields="id", on_delete=models.CASCADE)
      # 置空
      # depart = models.ForeignKey(to="Department", to_fields="id", null=True, blank=True, on_delete=models.SET_NULL)
      
    5. choices约束

      """
      1. verbose_name: 字段的备注
      2. SmallIntegerField: 对应数据表的tinyint
      3. 配置choices后,数据表存储的值是1 和 2
      """
      gender_choices = ((1, "男"),(2, "女"),
      )
      gennder = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
      

相关文章:

Django快速上手

1. 安装Django Django 4.x的版本只支持MySQL8及以上的版本了。如果mysql版本比较老,需要使用老版本的django。此处指定django版本为3.2.20 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django3.2.202. 创建项目 创建项目 在指定目录使用命令行创建项…...

Android, 笔记+课表的app实现

NoteSchedule: 笔记课表,不同于超表和课程格子等笔记类软件,笔记课表的核心是将课表和笔记进行深度绑定,点击每个课表,就进入到笔记view中,点击其中的item就可以进入到笔记详情; 该应用已上线,…...

Openlayers实战:多数据分散聚合

在飞机、轮船等地图显示的应用中,很多时候会用到数据聚合,Openlayers中提供了Cluster这个API ,他作为souce的一部分,设定distance值,如果2个点的间距小于 distance 所设置的数时,就会以聚合的方式显示。从而解决了数据淤积显示的状态,非常实用。 效果图 源代码 /* * @…...

9、Kubernetes核心技术 - Volume

目录 一、概述 二、卷的类型 三、emptyDir 四、hostPath 五、NFS 5.1、master服务器上搭建nfs服务器 5.2、各个slave节点上安装nfs客户端 5.3、创建Pod 六、PV和PVC 6.1、PV 6.1.1、PV资源清单文件示例 6.1.2、PV属性说明 6.1.3、PV的状态 6.2、PVC 6.2.1、PVC资…...

HTML <small> 标签

定义和用法 <small> 标签呈现小号字体效果。 <small> 标签和它所对应的 <big> 标签一样&#xff0c;但它是缩小字体而不是放大。如果被包围的字体已经是字体模型所支持的最小字号&#xff0c;那么 <small> 标签将不起任何作用。 与 <big> 标签…...

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块

网页版Java&#xff08;Spring/Spring Boot/Spring MVC&#xff09;五子棋项目&#xff08;四&#xff09;对战模块 一、约定前后端交互接口1. 建立连接接口2. 针对落子的请求和响应 二、实现前端页面三、实现后端1. 当用户进入房间&#xff0c;更新用户状态 OnlineUserManager…...

React实现关键字高亮

先看效果&#xff1a; 实现很简单通过以下这个函数&#xff1a; highLight (text, keyword ) > {return text.split(keyword).flatMap(str > [<span style{{ color: red, fontWeight: bold }}>{keyword}</span>, str]).slice(1);}展示某段文本时调用该函数…...

react-media如何使用

介绍 react-media 是 React 中用于响应式设计的一个很好的库。它可以用于在视口宽度满足特定条件时渲染组件。 主要功能包括: 媒体查询:通过 minWidth, maxWidth 和 width 等设置媒体查询条件。 渲染组件:当媒体查询条件匹配时渲染子组件。 默认样式:可以设置默认渲染的组件。…...

多进程利用TCP进行信息群发功能

/服务器的代码 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #define SEVER_IP &quo…...

git 报错 protocol ‘https‘ is not supported解决

报错原因&#xff1a;选择不了其他分支代码&#xff0c;甚至都看不到其他分支&#xff0c;我这边解决了两次报错&#xff0c;情况如下&#xff1a; 第一种报错&#xff1a; idea中刷新分支报错如下&#xff1a; Fetch Failed protocol https is not supported 话不多说&#…...

启动RocketMQ报错

说明&#xff1a;启动RocketMQ消费者时&#xff0c;报以下错误&#xff1a;java.lang.IllegalStateException&#xff1a;Failed to start RocketMQ push consumer. 解决&#xff1a;看下所有的监听器类&#xff0c;检查是不是有相同的消费者组名&#xff0c;注释掉其中一个即可…...

【Spring Boot系列】-Spring Boot过滤器Filter

【Spring Boot系列】-Spring Boot过滤器Filter 文章目录 【Spring Boot系列】-Spring Boot过滤器Filter一、概述二、Filter&#xff08;过滤器&#xff09;数据流程三、Spring Boot 过滤器生命周期四、使用注解方式实现过滤器(WebFilter)4.1. 在springboot 启动类添加该注解Ser…...

Leetcode-每日一题【剑指 Offer 14- I. 剪绳子】

题目 给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#xff0c;n>1并且m>1&#xff09;&#xff0c;每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少&#xff1f;例如&#xff0…...

【图论】单源最短路问题

Dijkstra算法 -- 这是我职业生涯中唯一一个会写&#xff0c;却叫不上名字的算法 Dijkstra算法是一种单源最短路径算法&#xff0c;用于找出图中从一个源点到其他所有点的最短路径。该算法的原理是采用贪心策略&#xff0c;每次将距离源点最近的点加入到已确定最短路径的集合中…...

物理层扩展以太网

扩展站点与集线器之间的距离&#xff1a;   在10BASE-T星型以太网中&#xff0c;可使用光纤和一对光纤调制解调器来扩展站点与集线器之间的距离。   为站点和集线器各增加一个用于电信号和光信息号转换的光纤调制解调器&#xff0c;以及他们之间的通信光纤。 扩展共享式以太…...

Llama 2 with langchain项目详解(一)

Llama 2 with langchain项目详解(一) 2023年2月25日,美国Meta公司发布了Llama 1开源大模型。随后,于2023年7月18日,Meta公司发布了Llama 2开源大模型,该系列包括了70亿、130亿和700亿等不同参数规模的模型。相较于Llama 1,Llama 2的训练数据增加了40%,上下文长度提升至…...

IDEA全局设置MyBatis中写SQL语句提示

把这两个设置改成MySQL即可&#xff1a;...

Linux 内存管理

顾名思义&#xff0c;Liunx内存管理子系统在系统中负责管理内存。它包括虚拟内存管理、段与页的实现、内核态与用户空的空间分配、将文件映射到进程空间等&#xff0c;很多很多酷炫的功能。 Linux内存管理是一个非常复杂的系统&#xff0c;它有非常多的可配置项。大部份这些配置…...

oracle怎样给某个普通用户授予杀自己用户会话的权限

一 问题描述 想给某个普通用户授予杀掉自己会话的权限 二 解决办法 2.1 用sys用户创建杀会话的存储过程 create or replace procedure scott_p_kill_session( v_sid number, v_serial number )asv_varchar2 varchar2(100);beginif v_sid is not null and v_serial is not n…...

redis的主从复制,哨兵和cluster集群

目录 一、redis的高可用 1&#xff09;redis高可用的概念 2&#xff09;Redis的高可用技术 二、redis主从复制 1&#xff09;主从复制的作用 2&#xff09;主从复制流程 三、redis一主二从的部署 实验组件 实验步骤 环境准备 修改内核参数 安装 Redis 创建redis工…...

STIX Two字体:解决学术文档跨平台符号显示问题的专业方案

STIX Two字体&#xff1a;解决学术文档跨平台符号显示问题的专业方案 【免费下载链接】stixfonts OpenType Unicode fonts for Scientific, Technical, and Mathematical texts 项目地址: https://gitcode.com/gh_mirrors/st/stixfonts 你是否曾遇到过这样的困扰&#x…...

EMQX 5.8.8 多机集群部署避坑指南:为什么你的Docker容器总连不上?

EMQX 5.8.8 多机集群部署避坑指南&#xff1a;为什么你的Docker容器总连不上&#xff1f; 当你第一次尝试在Docker中部署EMQX多机集群时&#xff0c;可能会遇到各种令人抓狂的问题&#xff1a;节点无法通信、集群状态异常、Dashboard无法访问...这些问题往往源于对Erlang分布式…...

从查重焦虑到 AIGC 检测双重突围:虎贲等考 AI 深度重构文本,降重 + 去 AI 痕迹一体化解决方案

一、传统改写工具为何失效&#xff1f;底层逻辑决定效果上限 在大量用户的实际使用反馈中&#xff0c;传统降重与去 AI 工具普遍存在三大致命缺陷&#xff0c;这也是为什么很多人越改越难通过的根本原因。第一&#xff0c;仅停留在文字表层替换&#xff0c;不具备语义理解能力…...

Rebus社区贡献指南:如何参与开源项目并成为核心贡献者

Rebus社区贡献指南&#xff1a;如何参与开源项目并成为核心贡献者 【免费下载链接】Rebus :bus: Simple and lean service bus implementation for .NET 项目地址: https://gitcode.com/gh_mirrors/re/Rebus Rebus作为一款Simple and lean service bus implementation f…...

消费增值积分单边上扬软件源码开发

消费增值积分单边上扬系统开发要点消费增值积分单边上扬系统是一种通过消费行为累积积分&#xff0c;并确保积分价值稳定上升的商业模式。以下是开发此类系统的关键要点&#xff1a;系统架构设计 采用微服务架构分离核心模块&#xff0c;积分管理模块独立部署确保高可用性。数据…...

基于MATLAB的16QAM系统仿真:从误码率分析到星座图可视化

1. 16QAM调制原理与MATLAB实现 16QAM&#xff08;16进制正交幅度调制&#xff09;是现代通信系统中常用的高效调制技术。我第一次接触这个概念是在研究生阶段的数字通信课上&#xff0c;当时对着星座图琢磨了半天才理解它的精妙之处。简单来说&#xff0c;它就像在一个二维平面…...

造相-Z-Image-Turbo前端集成指南:使用Vue.js构建实时图像生成预览界面

造相-Z-Image-Turbo前端集成指南&#xff1a;使用Vue.js构建实时图像生成预览界面 最近在做一个创意项目&#xff0c;需要快速生成各种风格的图片。后端同事推荐了造相-Z-Image-Turbo这个图像生成模型&#xff0c;效果确实不错。但每次测试都要用命令行或者Postman&#xff0c…...

AScript:让ActionScript应用获得动态灵魂的脚本引擎

AScript&#xff1a;让ActionScript应用获得动态灵魂的脚本引擎 【免费下载链接】ascript 用as3写的脚本解释器&#xff0c;语法类似as3 项目地址: https://gitcode.com/gh_mirrors/as/ascript 在iOS应用开发中&#xff0c;你是否曾因一个简单的逻辑修改而不得不重新提交…...

Claude Code 常用命令大全

Claude Code 的命令体系主要分为三类&#xff1a;在终端中执行的 CLI 命令、在交互界面内使用的 斜杠命令 和用于快速操作的 键盘快捷键。⌨️ CLI 命令这类命令在启动 Claude Code 的终端中直接执行&#xff0c;用于启动、配置和管理会话。claude&#xff1a;在当前目录启动一…...

3步掌握ModTheSpire:Slay the Spire模组加载终极指南

3步掌握ModTheSpire&#xff1a;Slay the Spire模组加载终极指南 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire ModTheSpire是《Slay the Spire》最强大的外部模组加载器&#xff0c;…...