我的python-web基础(Flask前后端不分类)

news2024/11/23 8:31:33

1.HTML

HTML是超文本标记语言 ( 英文 : HyperText Markup Language , HTML ),它不是编程语言,而是一种标记语言

HTML标记标签通常被称为HTML标签,它的特点如下:

HTML标签是由尖括号包围的关键词,比如<html>

HTML标签通常是成对出现的,比如<body></body>

标签对中的第一个标签是开始标签,第二个标签是结束标签

HTML标签的形式如下: <开始标签>内容<结束标签>

HTML元素: HTML元素以开始标签起始,以结束标签终止,元素的内容是开始标签与结束标签之间的内容。

<hi>标题</hi>,其中i表示标题级数,取值范围为1到6之间的正整数。

<br>标记是非成对标记,规范的换行标记在使用的时候记为<br>

<form name=’form_name’ method=’method’ action=’url’ enctype=’value’> ... </form>

HTML表单元素 :输入域标记<input> 文字域标记<textarea> 选择域标记<select>和<option> 

2.css

CSS是Cascading Style Sheets(层叠样式表)的缩写。

CSS是一种标记语言,用于为HTML文档定义布局。

CSS3 规则由两个主要的部分构成:选择器,及一条或多条声明。

selector { declaration1;  declaration2;  ... declarationN }

每条声明由一个属性和一个值组成。属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。 selector { property: value }

CSS3的嵌入方式:内联样式表、内部样式表、外部样式表。 内联样式表就是使用HTML属性style,在style属性内添加CSS样式。内联样式是仅影响一个元素的CSS生命,也就是被style属性包括着的元素。

内部样式表即在HTML文件内使用<style>标签,在文档头部<head>标签内定义内部样式表

外部样式表是一个扩展名为css的文本文件,跟其他文件一样,可以把样式表文件放在Web服务器上或者本地硬盘上。然后,在需要使用该样式的HTML文件中,创建一个指向外部样式表文件的链接(link)即可

CSS3 border - 边框 创建圆角边框,添加阴影框,并作为边界的形象而不使用设计程序(如Photoshop等作图软件),极大地帮助您节省了很多时间。一般边框有:

 CSS3 background - 用于定义HTML元素的背景 用于定义HTML元素的背景。如:body {  background-color:#b0c4de;  }, 一般背景属性有:

CSS3 img - 图像属性定义图片滤镜,缩略图,响应式图片,图片文本等

3.Javascript

JavaScript是一种可以嵌入在HTML代码中由客户端浏览器运行的脚本语言。在网页中使用JavaScript代码,不仅可以实现网页特效,还可以响应用户请求实现动态交互的功能。

<script>和</script>之间的代码行包含了JavaScript代码

JavaScript弹出对话框

使用外部JavaScript文件 语法格式     <script src=url></script>

外部JS文件优点     使用JavaScript文件可以将JavaScript脚本代码从网页中独立出来,便于代码的阅读。一个外部JavaScript文件,可以同时被多个页面调用。当公用的JavaScript脚本代码通过<script>标记中的src属性不但可以调用同一个服务器上的JavaScript文件,还可以通过指定路径来调用其他服务器上的JavaScript文件。

4.JQuery

jQuery库引入方式: 官方下载网址为:http://jquery.com/download jQuery库可以使用HTML的<script>标签引用     <head><script src=”jquery-x.x.x.js”></script></head>

CDN载入jQuery: BootCDN     http://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js     http://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js

基础语法格式: $(selector).action()

例: $(this).hide() #隐藏当前元素 $(“p”).hide() $(“p.test”).hide() $(“#test”).hide()  

jQuery函数: $(document).ready(function(){ //开始写jQuery代码 })

在页面中选取所有的<p>元素 $(“p”)

选取id为test的元素 $(“#test”)

选取所有class设置为test元素 $(“.test”)

在页面中指定一个悬停事件 $(“p”).hover();

5.MySQL

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据;我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。

MySQL是一个关系型数据库管理系统,或叫MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性

Navicat:Navicat是一款桌面版MySQL管理工具,它和微软的SQLServer的管理器很像,简单易用。Navicat的优势在于使用图形化的用户界面,可以让用户管理更加轻松。

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型:MySQL支持所有标准 SQL 数值数据类型。 日期和时间类型:表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。 字符串类型:指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

MySQL登录退出方式 命令行

登录:mysql [-h 主机名 -P 端口号] –u 用户名 –p,[]这个是可选的,用于远程连接

退出: exit 或者 quit

创建数据库     CREATE DATABASE 数据库名;

查看数据库     SHOW DATABASES;

删除数据库     DROP DATABASE 数据库名;

使用数据库     USE 数据库名;

查看当前选择的数据库     SELECT DATABASE(); 

查看数据库中有哪些数据表     SHOW TABLES FROM 数据库名;

创建数据表     CREATE TABLE 数据表名(列名1 属性,列明2 属性 ...)

修改数据表 ALTER TABLE

增加字段     ALTER TABLE 表名 ADD XXX;

删除字段     ALTER TABLE 表名 DROP XXX;

删除数据表     DROP TABLE 数据表名;

INSERT INTO 数据表名(column_name1,column_name2,... ) VALUES (value1, value2, ...)...;

SELECT 列名 FROM 数据表名 WHERE CONDITION;

GROUP BY GROUPING_COLUMNS

ORDER BY SORTING_COLUMNS

HAVING SECONDARY_CONSTRAINT

LIMIT COUNT

多个数据表中查询数据 SELECT A.id, B.age FROM A,B WHERE A.id=B.id;

查询数据时,DISTINCT在结果中去除重复行      SELECT DISTINCT TYPE FROM 表名;

对结果进行排序 ORDER BY,LIMIT 限定结果行数 SELECT *  FROM 表名 ORDER BY ID DESC LIMIT 3;     

GROUP BY 对结果分组      SELECT GERDER, AVG(PRICE)  FROM 表名 GROUP BY GERDER;  使用having子句设定第二个查询条件      SELECT GERDER, AVG(PRICE) FROM 表名 GROUP BY GERDER HAVING AVG(PRICE)>80;

模糊查询LIKE      SELECT *  FROM 表名 WHERE USERNAME LIKE‘%xx%’; CONCAT联合多列     SELECT ID,CONCAT(USERNAME,’:’,ADDRESS) AS INFO  FROM 表名;

UPDATE 数据表名 SET COLUMN_NAME = NEW_VALUE1...WHERE CONDITION;         UPDATE 表名 SET PASSWORD=’lwy’ WHERE UESRNAME=’lwy’;

DELETE FROM 数据表名 WHERE CONDATION;    DELETE FROM 表名 WHERE USERNAME=’lwy’;

6.使用python的pymysql模块操作数据库

Cursor 参数说明

Commit 参数说明 此方法将语句发送到 MySQL 服务器,提交当前事务 在使用 mysql.connector.connect 创建数据库连接时,有一个非常重要的参数autocommit,它的默认值是False(事务隐性开启)。如果设置为True,进行DML操作则不需要commit。

7.Flask

Flask 是一个基于Python的轻量级、可定制的Web开发框架

Flask 两个主要依赖:Werkzeug(WSGI 工具库)与Jinja(模板渲染库),其他功能均由外部扩展实现。

Werkzeug 提供路由、调试和Web服务器网关接口

Jinja2 提供模板

其他的一切由第三方库(免费开源)来完成

项目配置,是通过 app.config 对象来进行配置的。 配置一个项目的 SECRET_KEY,那么可以使用 app.config['SECRET_KEY'] = "xxx" 来进行设置,在 Flask 项目中,有四种方式进行项目的配置: 第一种方法:直接硬编码

第二种方法:update app.config 是 flask.config.Config 的实例,而 Config 类是继承自 dict,因此可以通过 update 方法。

第三种方法:配置模块 from_object() 把所有的配置项都放在一个模块中,然后通过加载模块的方式进行配置,假设有一个config.py 模块,专门用来存储配置项的,此时你可以通过 app.config.from_object() 方法进行加载,并且该方法既可以接收模块的的字符串名称,也可以模块对象。

第四种方法:配置文件 from_pyfile() 该方法是 app.config.from_pyfile(),该方法传入一个文件名,通常是以.py结尾的文件,但也不限于 .py 后缀的文件:

8.Jinjia2模板

模板的概念 模板简单来说就是一个其中包含占位变量,来表示动态的部分的文件,模板文件在经过动态赋值后,返回给用户。(可以理解为渲染)

Jinja2 模板 Jinja2 是Flask作者开发的一个模板系统,起初是仿Django模板的一个模板引擎,Jinja2 是一个模版语言,只是类似Python,比较符合Python语法,但不完全相同!

render_template(参数A,参数B...) 定义:渲染一个模板,就是执行模板中的代码,并传入所有在模板中使用的变量,渲染后的结果就是要返回给客户端的 HTML 响应。 使用方式:在视图函数中使用 Flask 提供的渲染函数render_template() 语法:           render_template(‘index.html’,username=name)           参数A:index.html           参数B:username=name

模板参数{{}} 定义:模板中使用{{}}结构表示一个变量,是一种特殊的占位符 语法:Jinja2能识别所有类型的变量,例如列表、字典、对象等          列表:<p> 从列表中取一个值:{{mylist[3]}}.</p>      字典:<p> 从字典中取一个值:{{mydict[‘key’]}}.</p>      对象:<p> 从对象的方法中取一个值:{{myobj.method()}}.</p>

控制语句

Jinja2语句:使用{ % ... % } 包围的语句成为语句

常用的控制语句:if语句、for语句,每一个语句都有 { % endxxx % } 来进行结束

过滤器

定义:过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。

使用方式:通过管道符号( | )进行使用,例如: {{ string|truncate(15)}} ,将字符串进行截断显示。

常见过滤器

Jinja2 自定义过滤器:

通过Flask应用对象的add_template_filter方法        

 app = Flask(__name__)          

app.add_template_filter(function_name,’fue’)

通过app.template_filter装饰器实现自定义过滤器        

@app.template_filter()        

def function_name():{}

jinja2 的宏功能:

宏功能类似于Python中的函数,可以传递参数,但是没有函数返回值,宏有声明和调用两部分

宏的定义:包含声明和调用两部分,声明一个宏需要macro、endmacro标志

Jinja2 的宏功能: 宏的include使用:Jinja2的模板继承允许你定义一个基模板,把网页上的导航栏、页脚等通用内容放在基模板中,而每一个继承基模板的子模板在被渲染时都会自动包含这些部分。

Jinja2模板的继承

在Jinja2中,使用extends标签实现子模版对父模板的继承。

9.蓝图Blueprint 

flask 中的静态路由与动态路由 静态路由:路径是固定的、不变的

动态路由:Flask 中动态路由是指带有参数的页面路径

绑定视图函数两种方法: app.route           add_url_rule

add_url_rule()函数有三个参数: rule:设置url

view_func:指定视图函数的名称

endpoint:给url设置的名称,可在代码中引用

Flask 的标准视图类 用户定义的视图类需要继承于 Flask.views.View

使用步骤如下: 用户定义一个视图类,继承于 Flask.views.View;

视图类中定义方法 dispatch_request,处理请求、返回 HTML 文本给客户端;

使用 app.add_url_rule (rule, view_func) 将 URL 路径和视图类绑定

实例:

as_view 函数的功能  视图类的本质是视图函数,函数 View.as_view () 返回一个视图函数。实现一个简化版本的 as_view 函数:

Flask 蓝图  

Flask 蓝图是一种组织 Flask 应用程序代码的方式,允许将应用程序代码分成更小的模块,这些模块可以用于构建更大的应用程序。 蓝图允许将路由、视图函数、模板和静态文件等操作分组到单个模块中,以便于管理和复用。 

创建 Flask 蓝图的基本步骤如下:

创建蓝图对象 使用 Flask 自带的 Blueprint 类创建蓝图对象。

定义视图函数 定义蓝图中的视图函数。

注册蓝图 在 Flask 应用程序中注册蓝图,即将蓝图对象和 URL 前缀绑定在一起。

定义蓝图:

注册蓝图:

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

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

相关文章

数据集标注研究

主要研究数据集标注存储文件的数据存储格式 目录 0.简介1.coco128-seg数据格式1.1 分割标注格式2.YOLO格式2.1 YOLO目标识别标签2.2 yolov5-seg分割标签2.TT100K数据集标注2.1 TT100K数据集标注文件解析0.简介 1.coco128-seg数据格式 1.1 分割标注格式 如coco128-seg数据集 …

力扣85.最大矩形

力扣85.最大矩形 遍历所有行作为底边 做求矩形面积&#xff08;84. class Solution {public:int maximalRectangle(vector<vector<char>>& matrix) {if (matrix.empty()) return 0;int n matrix.size(),m matrix[0].size();int res0;vector<int> li…

链动3+1商业模式:革新之路,引领企业持续增长

随着信息技术的飞速发展和互联网的不断渗透&#xff0c;企业的商业模式变革已经成为市场竞争中不可或缺的一环。在这个变革的浪潮中&#xff0c;链动31商业模式以其独特的逻辑和高效的激励机制&#xff0c;成为了业界瞩目的焦点。本文将深入探讨链动31模式的运作机制&#xff0…

【Matlab】-- BP反向传播算法

文章目录 文章目录 00 写在前面01 BP算法介绍02 基于Matlab的BP算法03 代码解释 00 写在前面 BP算法可以结合鲸鱼算法、飞蛾扑火算法、粒子群算法、灰狼算法、蝙蝠算法等等各种优化算法一起&#xff0c;进行回归预测或者分类预测。 01 BP算法介绍 BP&#xff08;Backpropag…

怎样去掉卷子上的答案并打印

当面对试卷答案的问题时&#xff0c;一个高效而简单的方法是利用图片编辑软件中的“消除笔”功能。这种方法要求我们首先将试卷拍摄成照片&#xff0c;然后利用该功能轻松擦除答案。尽管这一方法可能需要些许时间和耐心&#xff0c;但它确实为我们提供了一个可行的解决途径。 然…

SystemVerilog Assertion精华知识

前言 断言主要用于验证设计的行为。断言也可用于提供功能覆盖率&#xff0c;并标记用于验证的输入激励不符合假定的需求。 在验证平台中&#xff0c;通常进行三个主要任务&#xff1a; 产生激励功能检查功能覆盖率度量 在当今的设计越来越复杂情况下&#xff0c;像波形调试…

大数据学习-Hive

介绍 分布式 SQL 计算 做数据的统计分析&#xff0c;SQL 是最方便的工具 在大数据中&#xff0c;有很多的统计分析场景&#xff0c;那么 SQL 来处理大数据是非常合适且频繁的 以后可能就是 SQL Boy 了&#xff0c;所以学习前需要有 MySQL 的基础 Hive 的功能 是一个分布式…

Microsoft Edge无法启动搜索问题的解决

今天本来想清一下电脑&#xff0c;看到visual studio2022没怎么用了就打算卸载掉。然后看到网上有篇文章说进入C盘的ProgramFiles&#xff08;x86&#xff09;目录下的microsoft目录下的microsoft visual studio目录下的install目录中&#xff0c;双击InstallCleanup.exe&#…

什么概率密度函数?

首先我们来理解一下什么是连续的随机变量&#xff0c;在此之前&#xff0c;我们要先理解什么是随机变量。所谓随机变量就是在一次随机实验中一组可能的值。比如说抛硬币&#xff0c;我们设正面100&#xff0c;反面200&#xff0c;设随机变量为X&#xff0c;那么X{100,200}。 X是…

[RK-Linux] RK3562 I2C驱动TP芯片GSL3680

TP芯片GSL3680 1、简介 GSL3680是一款电容屏多点触摸控制单芯片,其芯片内部框架图如下所示: GSL3680采用了独特的互电容感应技术,可以在1ms内测量多达192个节点,支持广泛的传感器选择,包括单层或双层ITO,玻璃或薄膜,采用了先进的抗电磁干扰信号处理技术,使其对各种干…

笑死,裁员裁到大动脉了…

近日&#xff0c;某知名科技公司的裁员事件引起了社会的广泛讨论。 “笑死&#xff0c;裁员裁到大动脉了…” 看起来是大众对裁员事件的戏谑之词&#xff0c;实际上却暗示出了“打工人”的心酸同时也揭开了企业管理层的遮羞布。 &#x1f4a1;裁员决策在项目管理视角下的分析 …

AOP应用之系统操作日志

本文演示下如何使用AOP&#xff0c;去实现系统操作日志功能。 实现步骤 引入AOP包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>2.6.6</version></de…

【Apache Doris】周FAQ集锦:第 7 期

【Apache Doris】周FAQ集锦&#xff1a;第 7 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

YYU-5/80-260mm型钢筋残余变形测试仪 电子引伸计

YYU-5/80-260mm型钢筋接头专用引伸计&#xff0c;是按照《JGJ 107 2010 钢筋技术连接技术规程》的技术要求设计的&#xff0c;专门用于测试钢筋接头残余变形的双向平均引伸计&#xff0c;其标距可以根据钢筋直径要求进行调整。 完全符合《JGJ 107 2010 钢筋技术连接技术规程》…

Vulnhub--OS-HACKNOS-2.1

渗透复现 目标站点为wordpress&#xff0c;通过wpscan进行漏洞扫描发现漏洞插件 通过漏洞插件存在的目录穿越漏洞成功读取/etc/passwd文件中flag用户的密码 SSH登录flag用户后在备份文件中找到rohit用户的密码 切换rohit用户&#xff0c;rohit用户能够以root权限执行任何文…

靠3个字寻求机会,情商不够,别勉强自己

之前我分享了一篇文章寻求一个自由职业的前端伙伴&#xff0c;吸引了好几位朋友来咨询合作&#xff0c;中间出现了不少插曲&#xff0c;好在结果是令人满意的。 作为一名初次创业者&#xff0c;我承认很多地方做的不是那么到位&#xff0c;比如招聘合作伙伴&#xff0c;理想的状…

监控 Prometheus源码安装实战和动态更新 Centos7

安装go环境 下载go安装包 #创建文件夹 mkdir /usr/local/software #进入文件夹 cd /usr/local/software #下载安装包 wget https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz配置go环境变量 #解压 tar -zxvf go1.17.6.linux-amd64.tar.gz#配置环境变量 echo "exp…

AudioSep:从音频中分离出特定声音(人声、笑声、噪音、乐器等)本地一键整合包下载

AudioSep是一种 AI 模型&#xff0c;可以使用自然语言查询进行声音分离。这一创新性的模型由Audio-AGI开发&#xff0c;使用户能够通过简单的语言描述来分离各种声音源。 比如在嘈杂的人流车流中说话的录音中&#xff0c;可以分别提取干净的人声说话声音和嘈杂的人流车流噪声。…

集合注意事项

目录 我们为什么要用到集合中的迭代器 List实现类的循环遍历 Set集合 HashSet TreeSet Map Hashmap Treemap Hashtable map的遍历方式 Collections的一些静态方法 我们为什么要用到集合中的迭代器 List实现类的循环遍历 如图我们对arraylist中加入了三个相同的“a”…

汽车OTA--Flash RWW属性为什么这么重要

目录 1. OTA与RWW 1.1 FOTA需求解读 1.2 什么是RWW 2.主流OTA方案 2.1 单Bank升级 2.2 基于硬件A\B SWAP的FOTA方案 2.3 基于软件实现的FOTA方案 3.小结 1. OTA与RWW 1.1 FOTA需求解读 CP AUTOSAR R19-11首次提出了FOTA的概念&#xff0c;针对FOTA Target ECU提出了多…