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

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 前缀绑定在一起。

定义蓝图:

注册蓝图:

相关推荐
程序员爱钓鱼24 分钟前
Python编程实战:面向对象与进阶语法——上下文管理器(with语句)
后端·python·ipython
程序员爱钓鱼32 分钟前
Python编程实战:面向对象与进阶语法——装饰器(Decorator)
后端·python·ipython
辻戋1 小时前
从零实现React Scheduler调度器
前端·react.js·前端框架
徐同保1 小时前
使用yarn@4.6.0装包,项目是react+vite搭建的,项目无法启动,报错:
前端·react.js·前端框架
Qrun2 小时前
Windows11安装nvm管理node多版本
前端·vscode·react.js·ajax·npm·html5
中国lanwp2 小时前
全局 npm config 与多环境配置
前端·npm·node.js
JELEE.3 小时前
Django登录注册完整代码(图片、邮箱验证、加密)
前端·javascript·后端·python·django·bootstrap·jquery
孫治AllenSun5 小时前
【算法】图相关算法和递归
windows·python·算法
TeleostNaCl5 小时前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
前端大卫7 小时前
为什么 React 中的 key 不能用索引?
前端