五、初识Django

初识Django

    • 1.安装django
    • 2.创建项目
      • 2.1第一种方式:在终端
      • 2.2第二种方式:Pycharm
    • 3.创建app
    • 4.快速上手
      • 4.1再写一个页面
      • 4.2templates模板
      • 4.3静态文件
        • 4.3.1static目录
        • 4.3.2引用静态文件
    • 5.模板语法
    • 案例:伪联通新闻中心
    • 6.请求和相应
    • 案例:用户登录
    • 7.数据库操作
      • 7.1安装第三方模块
      • 7.2 ORM
        • 1.自己创建数据库
        • 2.django连接数据库
        • 3.django操作表
        • 4.表中的数据
    • 案例:用户管理
      • 1.展示用户列表
      • 2.添加用户
      • 3.删除用户

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

1.安装django

pip install django

在这里插入图片描述

c:\python39- python.exe- Scripts- pip.exe- django-admin.exe     【工具,创建django项目中的文件和文件夹】- Lib- 内置模块- site-packages- openpyxl- python-docx- flask- django           【框架的源码】

2.创建项目

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

2.1第一种方式:在终端

  • 打开终端

  • 进入某个目录(项目放在哪里)。

    /Users/wupeiqi/PycharmProjects/gx
    
  • 执行命令创建项目

    "c:\python39\Scripts\django-admin.exe" startproject 项目名称
    
    # 如果 c:\python39\Scripts 已加入环境系统环境变量。django-admin startproject 项目名称
    
    /Library/Frameworks/Python.frmework/Versions/3.9/bin/django-admin startproject mysite
    

    在这里插入图片描述

在这里插入图片描述

2.2第二种方式:Pycharm

注意:

- Python安装目录:C:\python39\python.exe lib....- F:\pycode\(基于Django创建的项目)

在这里插入图片描述
在这里插入图片描述

特殊说明:

  • 第一种方式:命令行,创建的项目是标准的。
  • 第二种方式:pycharm,在标准的基础上默认给咱们加了点东西。
    • 创建了一个templates目录【删除】

    • settings.py中【删除】

      在这里插入图片描述

默认项目的文件介绍:

D:\me\study\django\gx>tree /f mysite
卷 新加卷 的文件夹 PATH 列表
卷序列号为 38BF-A450
D:\ME\STUDY\DJANGO\GX\MYSITE
│  manage.py              【项目的管理,启动项目、创建app、数据管理】
│
├─.idea
│      .gitignore
│      workspace.xml
│
└─mysiteasgi.py            【异步:接收网络请求】settings.py		   【项目配置】           【***常常修改***】urls.py			   【URL和函数的对应关系】 【***常常修改***】wsgi.py            【同步:接收网络请求】__init__.py

3.创建app

- 项目- app,用户管理【表结构、函数、HTML模板、CSS】- app,订单管理【表结构、函数、HTML模板、CSS】- app,后台管理【表结构、函数、HTML模板、CSS】- app,网站   【表结构、函数、HTML模板、CSS】- app,API   【表结构、函数、HTML模板、CSS】..注意:我们开发比较简洁,用不到多app,一般情况下,项目下创建1个app即可。

在这里插入图片描述

(djangoProject) PS D:\me\study\django\gx\mysite2> tree /f
卷 新加卷 的文件夹 PATH 列表
卷序列号为 38BF-A450
D:.
│  a.py
│  manage.py
│
├─.idea
│      .gitignore
│      workspace.xml
│
├─app01
│  │  admin.py			  【固定,不用动】django默认提供了admin后台管理
│  │  apps.py             【固定,不用动】app启动类
│  │  models.py			  【***重要***】,对数据库操作
│  │  tests.py            【固定,不用动】单元测试
│  │  views.py            【***重要***】,函数
│  │  __init__.py
│  │
│  └─migrations           【固定,不用动】数据库变更记录
│          __init__.py
│
└─mysite2│  asgi.py│  settings.py│  urls.py            【URL->函数】│  wsgi.py│  __init__.py│└─__pycache__settings.cpython-39.pyc__init__.cpython-39.pyc

4.快速上手

  • 确保app已经注册【setting.py】,注意:不要放到中间件中
    在这里插入图片描述

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

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

  • 启动项目

    • 命令行启动

      python manage.py runserver
      
    • Pycharm启动

      在这里插入图片描述

4.1再写一个页面

- url -> 函数
- 函数

在这里插入图片描述

4.2templates模板

在这里插入图片描述

4.3静态文件

在开发过程中一般将:

  • 图片
  • CSS
  • js

都会当作静态文件处理。

4.3.1static目录

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

在这里插入图片描述

4.3.2引用静态文件

在这里插入图片描述

5.模板语法

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

在这里插入图片描述

案例:伪联通新闻中心

在这里插入图片描述

6.请求和相应

在这里插入图片描述

关于重定向:

在这里插入图片描述

案例:用户登录

def login(request):if request.method == "GET":return render(request, "login.html")# 如果是POST请求,获取用户提交的数据# print(request.POST)username = request.POST.get("user")password = request.POST.get("pwd")if username == "root" and password == "123":return redirect("https://www.chinaunicom.com.cn/")# return HttpResponse("登录失败")return render(request, "login.html", {"error_msg": "用户名或密码错误"})

7.数据库操作

  • MySQL数据库+pymysql

    import pymysql# 1.连接MySQL
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xx', db='unicom', charset='utf8')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令
    cursor.execute("insert into admin(username,password,mobile) values('wupeiqi','qwe123456','151555555')")
    conn.commit()# 3.关闭
    cursor.close()
    conn.close()
    
  • Django开发操作数据库更简单,内部提供了ORM框架。

在这里插入图片描述

7.1安装第三方模块

pip install mysqlclient

7.2 ORM

ORM可以帮助我们做两件事:

  • 创建、修改、删除数据库中的表(不用你写SQL语句)。【无法创建数据库】
  • 操作表中的数据(不用写SQL语句)
1.自己创建数据库
  • 启动MySQL服务

  • 自带工具创建数据库

    create database gx_day15 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    

在这里插入图片描述

2.django连接数据库

在settings.py文件中进行配置和修改。

DATABASES = {'default':{'ENGINE': 'django.db.backends.mysql',  # 数据库引擎'NAME': 'gx_day15',  # 数据库名称'HOST': '127.0.0.1',  # 数据库地址,本机 ip 地址 127.0.0.1'PORT': 3306,  # 端口'USER': 'root',  # 数据库用户名'PASSWORD': 'xxxxx',  # 数据库密码}
}
3.django操作表
  • 创建表
  • 删除表
  • 修改表

创建表:在models.py文件中:

在这里插入图片描述

create table app01_userinfo(id bigint auto_increment primary key,name varchar(32),password varchar(64),age int
)

执行命令:

python manage.py makemigrations
python manage.py migrate

注意:app需要提前注册。

在这里插入图片描述

在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据:

  • 1,手动输入一个值

  • 设置默认值

    age = models.IntegerField(default=2)
    
  • 允许为空

    data = models.IntegerField(null=True,blank=True)
    

以后在开发中如果想要对表结构进行调整:

  • 在models.py文件中操作类即可。

  • 命令

    python manage.py makemigrations
    python manage.py migrate
    
4.表中的数据
# 1、新建
# Department.objects.create(title="销售部")
# Department.objects.create(title="IT部")
# Department.objects.create(title="运营部")
# UserInfo.objects.create(name="吴佩琦", password="123", age=19)
# UserInfo.objects.create(name="住户非", password="666", age=29)
# UserInfo.objects.create(name="武阳郡", password="666")# 2、删除
# UserInfo.objects.filter(id=3).delete()
# Department.objects.all().delete()# 3、获取数据
# 3.1、获取符合条件的所有数据
# data_list = [对象,对象,对象]  QuerySet类型
# data_list = UserInfo.objects.all()
# for obj in data_list:
#     print(obj.id, obj.name, obj.password, obj.age)# 3.1、获取第一条数据【对象】
# row_obj = UserInfo.objects.filter(id=1).first()
# print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)# 4、更新数据
# UserInfo.objects.all().update(password="9999")
# UserInfo.objects.filter(name="住户非").update(age="999")

案例:用户管理

1.展示用户列表

  • url
  • 函数
    • 获取所有用户信息
    • HTML渲染

2.添加用户

  • url
  • 函数
    • GET,看到页面,输入内容。
    • POST,提交 -> 写入到数据库。

3.删除用户

  • url
  • 函数
http://localhost:8000/info/delete/?nid=1
http://localhost:8000/info/delete/?nid=2
http://localhost:8000/info/delete/?nid=3def 函数(request):nid = request.GET.get("nid")UserInfo.object.filter(id=nid).delete()return HttpResPos

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

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

相关文章

ExoPlayer架构详解与源码分析(11)——DataSource

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

linux之Haproxy

介绍 haproxy是一种开源的TCP和HTTP负载均衡代理服务器软件。客户端通过Haproxy代理服务器获得站点页面,而代理服务器收到客户请求后根据负载均衡的规则将请求数据转发给后端真实服务器 下载Haproxy yum install haproxy -y 开启服务 systemctl start haproxy 配…

系统分析师(软考)知识点整理——进程管理

操作系统 概念 操作系统是控制和管理计算机软硬件资源,以尽可能合理、有效的方法组织多个用户共享多种资源的程序集合 作用 通过资源管理提高计算机系统的效率改善人际界面面向用户提供友好的工作环境 特征 并发性共享性虚拟性不确定性 进程管理 概念 进程…

【办公类-22-15】周计划系列(5-6)“周计划-06 周计划打印pdf(docx删除内容转PDF)“ (2024年调整版本)

作品展示 背景需求: 前期用docx(删除第一页反思部分内容)转PDF转png(第一页)的方式获得上传网页用的图片。 【办公类-22-14】周计划系列(5-5)“周计划-05 上传周计划png(docx转PDF…

【MLLM+轻量多模态模型】24.02.Bunny-v1.0-2B-zh: 轻量级多模态语言模型 (效果一般)

24.02 北京人工智能研究院(BAAI)提出以数据为中心的轻量级多模态模型 arxiv论文:2402.Efficient Multimodal Learning from Data-centric Perspective 代码:https://github.com/BAAI-DCAI/Bunny 在线运行:https://wis…

前端调用接口地址跨越问题,nginx配置处理

在nginx配置里面添加add_header如下: add_header Access-Control-Allow-Origin *; #add_header Access-Control-Allow-Origin http://localhost:8080 always; add_header Access-Control-Allow-Methods GET, POST, PUT, D…

[Java、Android面试]_09_Synchronized、volatile、Lock并发

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注收…

自上而下的角色扮演游戏资产包幻想梦境

Fantasy Dreamland 是一個完整的資源包,包含開始製作自上而下的像素藝術遊戲所需的一切! 幻想夢境瓷磚套裝: - 超過 13,000 塊瓷磚! - 超過 500 個動畫圖塊! - 鐵匠! - 城堡! - 洞穴! - 聖誕節! (裝飾) - 城市! - 沙漠! - 沙漠房屋! - 夢想/天空! - …

【解决】使用Jekyll框架进入网页终端返回找不到.min.js或者类似Rollup模块化构建js失败问题

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 文章目录 一、问题表现二、问题解决(一)检查输出目录(二)启动Rollup构建 三、…

PCD1000AE单通道高压线性恒流LED控制芯片

概述 PCD1000AE 是一款线性恒流 IC,输出电流可调,恒流精度高,应用方案简单,成本和阻容降压相当,具有过温保护功能,更安全,更可靠。 特点 输出电流可调 5mA-60mA, 恒流精度可以达…

【C++】vector容器初步模拟

送给大家一句话: 努力一点,漂亮—点,阳光一点。早晚有一天,你会惊艳了时光,既无人能替,又光芒万丈。 vector容器初步模拟 1 认识vector开始了解底层实现 2 开始实现成员变量构造函数 析构函数尾插迭代器插入…

【漏洞复现】福建科立迅通信指挥调度平台down_file.php sql注入漏洞

漏洞描述 福建科立迅通信调度平台 20240318 以及之前版本存在一个严重漏洞,影响了文件 api/client/down_file.php 的一个未知功能。攻击者可以通过操纵参数 uuid 发起 SQL 注入攻击。攻击者可以远程发起攻击。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守…

GraalVM详细安装及打包springboot、java、javafx使用教程(打包springboot2篇)

前言 在当前多元化开发环境下,Java作为一种广泛应用的编程语言,其应用部署效率与灵活性的重要性日益凸显。Spring Boot框架以其简洁的配置和强大的功能深受开发者喜爱,而JavaFX则为开发者提供了构建丰富桌面客户端应用的能力。然而&#xff…

基于Java中的SSM框架实现图书仓储管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现图书仓储管理系统演示 摘要 随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期,随着经济文化水平的显著提高,人们对生活质量及…

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结 模糊图像增强技术之锐化类滤波场景应用小结—【蘇小沐】 (一)锐化类滤波器 模糊消除类滤波器(Remove blur / Unsharpness)。 通用去模糊滤波器:针对大…

(ROOT)KAFKA详解

生产篇 使用 /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to Y…

#Linux(环境变量)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)查看环境变量 (2)修改环境变量 第一种方法:直接使用命令设置(立即生效,只会作用…

了解交换机上的SFP和QSFP端口

在当今互联的世界中,可靠、高效的网络通信对于企业的蓬勃发展至关重要。为了实现顺畅的连接,了解能够实现该目标的技术非常重要。其中一项关键技术是交换机上的SFP和QSFP端口。本文将简要介绍这些概念,定义并解释交换机SFP端口和QSFP端口的优…

视频私有云,HDMI/AV多硬件设备终端接入,SFU/MCU视频会议交互方案。

在视频业务深入的过程中越来越多的硬件设备接入视频交互的视频会议中远程交互,有的是视频采集,有的是医疗影像等资料,都需要在终端承显,这就需要我们的设备终端能多设备,多协议接入,设备接入如下。 1&#…

软件应用,宠物医院兽医开的处方单管理系统软件教程,宠物店营业软件教程

软件应用,宠物医院兽医开的处方单管理系统软件教程,宠物店营业软件教程 一、前言 以下软件操作教程以 佳易王宠物医院兽医处方软件V17.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 在开处方单的时候,可以打…