杂货铺 | Django初始(补档)

2024-02-17 13:44
文章标签 django 初始 补档 杂货铺

本文主要是介绍杂货铺 | Django初始(补档),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 📚安装django
  • 📚在pycharm创建项目
  • 📚创建app
  • 📚快速上手
    • 🐇再写一个页面
    • 🐇templates模板
    • 🐇静态文件
  • 📚模板语法
  • 📚请求和响应
  • 📚数据库操作

  • Python知识点:函数、面向对象。
  • 前端开发:HTML、CSS、JavaScript、jQuery、BootStrap。
  • MySQL数据库。
  • Python的Web框架:
    • Flask,自身短小精悍 + 第三方组件。
    • Django,内部已集成了很多组件 + 第三方组件。【主要】

📚安装django

pip install django

📚在pycharm创建项目

django中项目会有一些默认的文件和默认的文件夹

利用Pycharm + Django搭建一个简单Python Web项目

默认项目的文件介绍:

mysite
├── manage.py         【项目的管理,启动项目、创建app、数据管理】【不要动】【常用!】
├── templates         【通用的templates模板存放】
└── mysite├── __init__.py├── settings.py    【项目配置】          【常改!】├── urls.py        【URL和函数的对应关系】【常改!】├── asgi.py        【接收网络请求】【不要动】└── wsgi.py        【接收网络请求】【不要动】

在这里插入图片描述

📚创建app

  • Pycharm的Terminal命令——python manage.py startapp appName
  • 一个APP文件夹代表一个模块,可以包括:
    在这里插入图片描述

📚快速上手

  • ️确保app已注册 settings.py
    在这里插入图片描述

  • 编写URL和视图函数对应关系 urls.py
    在这里插入图片描述

  • 编写视图函数views.py
    在这里插入图片描述

  • 启动django项目

    • 命令行启动:python manage.py runserver
    • Pycharm启动
      在这里插入图片描述

🐇再写一个页面

  • url -> 函数
  • 函数
    在这里插入图片描述

🐇templates模板

tip:

  1. 返回简单的字符串——return HttpResponse (“内容”)
  2. 返回一个网页——return render(request, “xxx.html”)
    • 搭配当前app文件夹之下创建的templates文件夹
    • 去找这个语句所提到的HTML文件
      • 优先在根目录里的templates里找(提前先配置,一般默认就会有,不配置即无效)
      • 然后再根据app的注册顺序,逐一去每个app的templates里去找。
        在这里插入图片描述

🐇静态文件

  • 在开发过程中一般将:图片、CSS、js都当做静态文件处理。

  • static目录:在app目录下创建static文件夹。

  • 引用静态文件

    在这里插入图片描述

    也可以不这么写,就直接写static/plugins/bootstrap-3. 4 .1/css/bootstrap.css,但这样的话,如果static文件名改了就全部要去手动改,但如果用如图的方式,就不需要一个个去手动改,还是会默认去那个静态文件夹里找。

📚模板语法

本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。

Django模板语法的一篇博客

Django模板语法的哔哩哔哩讲解,包含案例,推荐观看

模板语法本质——视图函数的render内部

  1. 读取含有模板语法的HTML文件
  2. 内部进行渲染(即模板语法执行并替换数据)最终得到只包含HTML标签的字符串
  3. 将渲染替换完成的字符串返还给用户浏览器

简单例子举例:
在这里插入图片描述
最后显示结果为:
在这里插入图片描述
字典同理,列表里套字典也同理,条件语句也同理,具体可去看一下哔哩哔哩讲解视频

📚请求和响应

也推荐看哔哩哔哩对应章节视频

在这里插入图片描述

常见是get,get可以理解为明面上给数据

  • 案例:用户登录
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

补充:csrf_token的作用

📚数据库操作

  • Django开发操作数据库更简单,内部提供了ORM框架,相当于一个翻译器。
    在这里插入图片描述
  • 安装第三方模块:pip install mysqlclient
  • ORM:ORM可以帮助我们做两件事:
    • 创建、修改、删除数据库中的表(不用你写SQL语句)。 【无法创建数据库】
    • 操作表中的数据(不用写SQL语句)。

  1. 自己创建数据库

  2. django连接数据库:在settings.py文件中进行配置和修改。

    DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'gx_day15',  # 数据库名字'USER': 'root', # 用户名'PASSWORD': 'root123', # 密码'HOST': '127.0.0.1',  # 那台机器安装了MySQL'PORT': 3306,}
    }
    
  3. django操作表

    • 创建表:在models.py文件中
      在这里插入图片描述

      • ①在models中输入以上语句,数据库中会自动执行以下代码:

        create table app01_userinfo(id bigint auto_increment primary key, name varchar(32),password varchar(64),age int
        )
        
        • 最后生成的表名是该app文件夹的名_class后的类名
        • 尤其关注:每一个表在创建时都会默认添加一个既是自动递增又是主键的id字段
        • 而且打开数据库会发现很多额外的表,那是Django自带的
      • ②执行命令:

        python manage.py makemigrations
        python manage.py migrate
        
        • 理解python manage.py makemigrations 和 python manage.py migrate_
        • 注意:app需要提前注册。
    • 修改表

      • ①删除字段——直接在models.py里边删,然后再用上边两个命令更新一下
      • ②添加字段
        • 在models.py里边添加,然后再用上边两个命令更新一下。
        • 在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据:手动输入一个值
        • 设置默认值:age = models.IntegerField(default=2)
        • 允许为空:data = models.IntegerField(null=True, blank=True)
  4. 表中的数据

    • 添加/新建数据
      #表名.objects.create()
      #这是程序员代码端的insert
      UserInfo.objects.create(name="武沛齐", password="123", age=19)
      UserInfo.objects.create(name="朱虎飞", password="666", age=29)
      #如果某个字段有默认值,例age字段有默认值2,那么就算不填,最后会给age一个2
      UserInfo.objects.create(name="吴阳军", password="666")
      
    • 删除数据
      #关注filter,就把id=3的对应数据删了
      UserInfo.objects.filter(id=3).delete()
      #这是把Department里的所有数据都删掉了
      Department.objects.all().delete()
      
    • 获取数据
      #获取全部数据
      data_list = UserInfo.objects.all()
      for obj in data_list:print(obj.id, obj.name, obj.password, obj.age)
      #获取某一条数据
      data_list = UserInfo.objects.filter(id=1)
      print(data_list)
      
    • 更新数据
      UserInfo.objects.all().update(password=999)
      UserInfo.objects.filter(id=2).update(age=999)
      UserInfo.objects.filter(name="朱虎飞").update(age=999)
      

这篇关于杂货铺 | Django初始(补档)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/717946

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

MySQL数据库介绍——初始数据库MySQL

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。  公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 写在前面: 一.数据库基础知识 1.什么是数据库 数据库的发展⼤致划分为以下⼏个阶段: 其种类⼤概有3种: 2.表 2.1数据类型 2.2主键 二.数据库技术构成 1.数据库系统 1.2

Linux搭建Python3、Django环境

开发十年,就只剩下这套架构体系了! >>>    好久没写了,朋友们,我又回来了。 安装Python3 Python全部版本下载地址:         https://www.python.org/ftp/ 解决RedHat,使用Python3退格出现乱码问题:         yum -y install readline-devel.x86_64 下载Python3:

Django 第十七课 -- 视图 - FBV 与 CBV

目录 一. 前言 二. FBV 三. CBV 一. 前言 FBV(function base views) 基于函数的视图,就是在视图里使用函数处理请求。 CBV(class base views) 基于类的视图,就是在视图里使用类处理请求。 二. FBV 基于函数的视图其实我们前面章节一直在使用,就是使用了函数来处理用户的请求,查看以下实例: 路由配置: urlpat

django摄影竞赛小程序论文源码调试讲解

2系统关键技术及工具简介 系统开发过程中设计的关键技术是系统的核心,而开发工具则会影响的项目开发的进程和效率。第二部分便描述了系统的设计与实现等相关开发工具。 2.1 Python简介 Python 属于一个高层次的脚本语言,以解释性,编译性,互动性和面向对象相结合。在设计上相比其他语言,它更具有特色语法结构,很强的可读性。 2.2 Django框架 Django是一个开放源

Django 测试指南

#Django 测试指南 对绝大部分人来说,测试Django应用感觉很神秘,他们只是听说代码必须要测试,但是经常找不到线索如何入手。当他们看了Django的测试文档,他们找到深入的哪些功能是可用的,但是如果实现没有任何指导。 这是本博客系列的第一篇,尝试帮助大家减轻压力,使得每个人在测试潮流。假设你从来没有做过任何测试,但是对Python&Django很熟悉了。 我们将贯穿添加测试到pere

使用django-simple-captcha遇到的坑

使用django-simple-captcha遇到的坑 一站点gongshare.com在做注册功能时验证码采用的django-simple-captcha,因为笔者开发环境采用的Windows 64bit系统,结果安装使用的时候接二连三遇到好几个坑。 django-simple-captcha需要依赖django1.3+、PIL1.1.7+或者Pillow2.0+,根据文档安装后开始使用时,

解决Django会话中的竞态条件

Django 会话中的竞态条件(race condition)问题通常发生在多个请求几乎同时修改同一个会话数据时,导致数据丢失或数据不一致。这种情况在需要频繁更新会话数据的场景(如实时聊天应用、并发请求处理等)中尤为常见。 1、问题背景 在 Django 中使用会话时,可能会遇到竞态条件,导致数据丢失或不一致。竞态条件是指两个或多个请求同时访问共享资源时,由于执行顺序的不确定性,导致数据不

Django+Vue3前后端分离学习(五)(前端登录页面搭建)

1、如果需要使用组合式API,需要安装插件: npm install vite-plugin-vue-setup-extend --save-dev 在vite.config.js里配置: 首先导入: import VueSetupExtend from 'vite-plugin-vue-setup-extend' 添加: 2、创建login.vue 然后再index.js里添加