[学习笔记]python的web开发全家桶2(ing)

news2024/11/20 4:19:11

初识网站

  • 默认编写的静态的效果
  • 动态:需要用到Web框架的功能。
    在这里插入图片描述
    对于目前的我们来看,什么可以做数据存储:
  • txt文件
  • excel文件
  • 专业的软件:数据库管理系统
    MySQL/Oracle/SQLServer/DB2/Access...
    在这里插入图片描述

7 MysQL

7.1 安装MySQL

MySQL,本质上就是一个软件。

  • 8.x
  • 5.x

7.2 启动MySQL

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

7.3 MySQL指令

7.3.1 数据库管理(文件夹)

在这里插入图片描述

7.3.2 数据表的管理(文件)


char,速度快。varchar,节省空间。

7.4 案例:员工管理

在这里插入图片描述

7.4.2 Python操作MySQL

创建连接,创建游标cursor,用游标execute执行sql语句,然后断开连接。

import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="xxxx", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)


# 2.发送指令
cursor.execute("insert into admin(username, password, mobile) values('张三', 'qwe123', '155555')")
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

动态执行sql,千万不要用字符串格式化去做sql拼接,会有安全隐患SQL注入

sql = "insert into admin(username, password, mobile) values(%s, %s, %s)"
cursor.execute(sql, ["李四", "qwe123", "1999999"])

sql = "insert into admin(username, password, mobile) values(%(n1)s, %(n2)s, %(n3)s)"
cursor.execute(sql, {"n1": "王五",  "n2": "qwe123", "n3": "1999999"})
conn.commit()
  • 查询数据
    fetchall获取所有数据
    fetchone获取符合条件的第一条数据
import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="xxxxx, charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令
sql = "select * from admin where id > 2 "
cursor.execute(sql)
datalist = cursor.fetchall()
for row_dict in datalist:
    print(row_dict)

# 3.关闭连接
cursor.close()
conn.close()

在这里插入图片描述

8.案例:Flask+MySQL

在这里插入图片描述

from flask import Flask, render_template, request
import pymysql

app = Flask(__name__)

@app.route("/add/user", methods=["GET", "POST"])
def add_user():
    if request.method == "GET":
        return render_template("add_user.html")

    username = request.form.get("user")
    password = request.form.get("pwd")
    mobile = request.form.get("mobile")

    # 1.连接MySQL
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="xxxx", charset="utf8", db="unicom")
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # 2.执行SQL
    sql = "insert into admin(username, password, mobile) values(%s, %s, %s)"
    cursor.execute(sql, [username, password, mobile])
    conn.commit()
    # 3.关闭连接
    cursor.close()
    conn.close()

    return "添加成功"


@app.route("/show/user")
def show_user():
    # 1.连接MySQL
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="xxxx", charset="utf8", db="unicom")
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # 2.执行SQL
    sql = "select * from admin"
    cursor.execute(sql)
    data_list = cursor.fetchall()
    # 3.关闭连接
    cursor.close()
    conn.close()

    print(data_list)
    return render_template("show_user.html", data_list=data_list)


if __name__ == '__main__':
    app.run()

9 初始Django

9.1 安装django

安装完会有django-amin.exe和django模块。
在这里插入图片描述

9.2 创建项目

9.2.1 在终端

在这里插入图片描述

9.2.2 Pycharm


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

9.3 APP

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

9.4 快速上手

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

9.4.1 再写一个页面

在这里插入图片描述

9.4.2 templates模板

在这里插入图片描述

9.4.3 静态文件

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

9.5 模板语法

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>模板语法的学习</h1>
<div>{{ n1 }}</div>
<div>{{ n2 }}</div>

<div>{{ n2.0 }}</div>
<div>{{ n2.1 }}</div>
<div>{{ n2.2 }}</div>

<div>
    {% for item in n2 %}
        <span>{{ item }}</span>
    {% endfor %}
</div>
<hr/>
<div>{{ n3 }}</div>

<div>{{ n3.name }}</div>
<div>{{ n3.salary }}</div>
<div>{{ n3.role }}</div>

<div>
    {% for k, v in n3.items %}
        <li>{{ k }} = {{ v }}</li>
    {% endfor %}
</div>
<hr>
{{ n4.1 }}
{{ n4.1.name }}
{% for item in n4 %}
    <div>{{ item.name }}{{ item.salary }}</div>
{% endfor %}

<hr>
{% if n1 == "韩超" %}
    <h1>哒哒哒</h1>
{% else %}
    <h1>嘟嘟嘟</h1>
{% endif %}

{% if n1 == "韩超" %}
    <h1>哒哒哒</h1>
{% elif n1 == "xxx" %}
    <h1>bibibi</h1>
{% else %}
    <h1>嘟嘟嘟</h1>
{% endif %}
</body>
</html>

案例:伪联通新闻中心

爬虫如果报错:Expecting value: line 1 column 1 (char 0)可以参考视频

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

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

相关文章

#10042. 「一本通 2.1 练习 8」收集雪花

题目描述 不同的雪花往往有不同的形状。在北方的同学想将雪花收集起来&#xff0c;作为礼物送给在南方的同学们。一共有 n 个时刻&#xff0c;给出每个时刻下落雪花的形状&#xff0c;用不同的整数表示不同的形状。在收集的过程中&#xff0c;同学们不希望有重复的雪花。你可以…

Tomcat【redis-session共享】

目录 1、创建虚拟主机&#xff08;01-02&#xff09;相同【192.168.200.121、192.168.200.122】 2、LB配置文件【192.168.200.120】 3、tomcat节点配置TomcatClusterRedisSessionManager方式实现redis共享&#xff08;01-02&#xff09;相同 4、安装redis、配置【192.168.20…

智慧餐饮未来:点赋科技智能饮品机器人带来的变革

随着科技的不断发展&#xff0c;智慧餐饮作为餐饮行业的新兴概念已经不再只是简单的餐厅智能化&#xff0c;而是包括了数字化、智能化和现代化等多个方面。点赋科技智能饮品机器人是智慧餐饮中最具代表性的之一&#xff0c;它的发展将引领智慧餐饮行业的未来方向。 首先&#x…

TIA博途Wincc中制作电机风扇或水泵旋转动画的具体方法示例

TIA博途Wincc中制作电机风扇或水泵旋转动画的具体方法示例 如下图所示,打开TIA博途软件,新建一个项目,添加一个1215 PLC,双击进入设备组态,设置属性—常规—系统和时钟存储器,勾选“启用系统存储器字节”、“启用时钟存储器字节”, 如下图所示,添加一个全局DB块,这里…

【Java】02--变量与数据类型Scanner

文章目录 1.什么是常量&#xff0c;什么是变量2.数据类型2.1什么是数据类型转换 3.为什么要使用Scanner 1.什么是常量&#xff0c;什么是变量 你只需要记住两点&#xff1a; 常量&#xff1a;就是一种不会根据环境而改变的数据&#xff0c;例如&#xff1a;圆周率。 变量&…

网络io模型、同步异步及Sanic和uvloop

网络io模型及基础概念 概念说明 用户空间与内核空间 操作系统的核心是内核&#xff0c;独立于普通的应用程序&#xff0c;可以访问受保护的内存空间&#xff0c;也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核&#xff08;kernel&#xff09;&#xff0…

银河麒麟系统安装mysql数据库[mysql-5.7.28-linux-glibc2.12-x86_64]

银河麒麟系统安装mysql数据库 1.1 准备材料 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz MySQL5.7下载地址 https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 1.1 安装前准备工作 1、检查是否已经安装MySQL [rootlocalhost ~]# rpm …

使用虚拟引擎创建海盗船长角色分解

介绍 你好&#xff01;我叫 Stapan&#xff0c;我是电影和电影的角色艺术家&#xff0c;我有在动画工作室担任自由艺术家和角色艺术家的经验&#xff0c;现在我正在与 Artem Gansior 领导的 ODEE 团队一起制作一部短片。 参考 对于这个项目&#xff0c;最初的角色概念是由超…

MAYA曲线粒子

不从粒子中心发射 nParticleShape1.massrand(0.5,0.7);

【Linux】Linux服务器硬件条件的查看

【Linux】Linux服务器硬件条件的查看 文章目录 【Linux】Linux服务器硬件条件的查看1. CPU条件查看1.1 查看CPU 个数1.2 查看 CPU 物理核数1.3 查看CPU的运行模式1.4 查看 CPU 的型号 2. GPU 条件查看3. 查看磁盘空间、内存、Linux内核当前的系统版本号3.1 磁盘空间3.2 内存3.3…

电源自动化测试系统一站式软硬件解决方案ATECLOUD-Power

*测试系统&#xff1a;本系统是专门针对各类电源模块测试的一体化智能解决方案&#xff0c;此框架结构可根据客户实际测试需求以及预算进行调整&#xff0c;经济适用。 *测试产品&#xff1a;DC-DC电源模块、AC-DC电源模块、车用电源模块、机载电源模块、军用电源模块、特种电源…

A2B音频传输误码率测量方法

+hezkz17进数字音频系统研究开发交流答疑 如何测量音频传输误码率? 2023/6/27 14:03:58 要测量音频传输误码率,可以采取以下步骤: 选择合适的测试设备和仪器:使用专门用于音频传输测试的设备,例如音频信号发生器、示波器和频谱分析仪等。 设置测试场景:确保测试环境符合…

C语言time(NULL)学习

根据资料&#xff1b;如下一段代码&#xff1b; clock_t a,b; float cputime; atime(NULL);for (intz0;z<10000000;z){ float f0; for (int i 0; i<n; i)f h_idata[i]; }btime(NULL); cputime(float)(b-a); printf("cuptime%fmseconds\n",cputime); 前后2个…

Linux——2Linux基础命令

目录 2.1 Linux的目录结构 2.2 Linux命令入门 ls命令 Home目录和工作目录 2.3 目录切换相关命令 cd 切换工作目录 pwd 查看当前工作目录 2.4 相对路径、绝对路径和特殊路径符 相对路径和绝对路径 特殊路径符 2.5 创建目录命令mkdir 2.6 文件操作命令 touch、cat、…

文本分析-使用jieba库实现TF-IDF算法提取关键词

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash

概述 我们可以通过标准的SPI接口和QSPI接口来外挂flash。区别如下 使用标准SPI接口外挂flash&#xff0c;需要自己实现flash驱动&#xff0c;和自己移植文件系统 使用QSPI接口外挂flash&#xff0c;不需要自己实现flash驱动&#xff0c;也不需要移植文件系统 。通过mount接口挂…

医院电气能源管理与节能措施讨论

摘要&#xff1a;随着我国经济建设的不断加快&#xff0c;我国能源消耗也越来越大&#xff0c;如何通过电气能源管理实现节能是各行各业都在研究的课题。医院作为我国重要的医疗服务机构&#xff0c;能源管理是医院管理中的重要组成部分。本文将针对医院电气能源管理与节能措施…

maven Nexus 私库安装使用总结

maven Nexus私库安装使用总结 大纲 nexus安装总结nexus使用总结域名配置admin账号密码修改创建仓库组创建仓库创建权限创建角色创建用户mvn deploy 部署配置 nexus安装总结 本例子使用的是常见的nexus2.x版本 注意需要先安装JDK Nexus 专业版是需要付费的&#xff0c;这里…

硬件学习 软件 Cadence day11 PCB 设计中 临时 的翻转/旋转快捷键设置等

1. PCB设计中多种快捷键设置 (临时的) 1.1 旋转 90 快捷键设置 &#xff08;角度自己可以改 &#xff09; alias ~R angle 90 #CtrlR 1.2 元器件 底层 和 顶层交换的快捷键 &#xff08;临时的&#xff09; alias ~F mirror #Ctrl F 参考文章&#xff1a;Cadenc…

数据结构--单链表的建立

数据结构–链表的建立 目标&#xff1a; Step 1:初始化一个单链表 Step 2:每次取一个数据元素&#xff0c;插入到表尾/表头 尾插法建立单链表 代码实现 typedef struct LNode {int data;struct LNode *next; }LNode, *LinkList;LinkList List_TailInsert(LinkList &L) {…