Web应用开发与安全防护-基于Python和统信UOS 课件全套_第1页
Web应用开发与安全防护-基于Python和统信UOS 课件全套_第2页
Web应用开发与安全防护-基于Python和统信UOS 课件全套_第3页
Web应用开发与安全防护-基于Python和统信UOS 课件全套_第4页
Web应用开发与安全防护-基于Python和统信UOS 课件全套_第5页
已阅读5页,还剩158页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于基于国产平台的《Web应用开发与安全防护》关于国产化软件国产化战略意义软件国产化战略是指通过自主研发、技术创新和产业升级,推动国内软件产业的发展,减少对国外软件的依赖,提升国家在信息技术领域的自主可控能力。这一战略在当今全球化和数字化的背景下具有深远的意义,主要体现在以下几个方面:1.保障国家信息安全减少安全风险:依赖国外软件可能导致关键信息基础设施面临安全威胁,如数据泄露、网络攻击等。国产化软件能够更好地满足国家安全需求,降低被“卡脖子”的风险。自主可控:国产软件的核心技术和源代码可控,能够有效防止后门、漏洞等潜在威胁,确保国家信息安全。2.提升技术自主创新能力打破技术垄断:通过国产化战略,推动国内企业在操作系统、数据库、中间件等核心领域的技术突破,减少对国外技术的依赖。促进技术创新:国产化战略鼓励企业加大研发投入,推动技术创新,形成具有自主知识产权的技术体系。3.推动经济高质量发展培育新兴产业:软件国产化有助于推动信息技术产业的快速发展,形成新的经济增长点,促进经济结构优化升级。降低企业成本:国产软件通常更具成本优势,能够降低企业和政府的信息化建设成本,提高经济效益。4.增强国际竞争力提升国际话语权:通过软件国产化,中国可以在全球信息技术领域占据更重要的地位,增强在国际标准制定和规则制定中的话语权。推动“走出去”战略:国产软件企业可以通过技术创新和产品优化,参与国际竞争,提升中国软件产业的全球影响力。5.促进产业链协同发展完善产业链:软件国产化不仅涉及软件开发,还包括硬件、操作系统、数据库、应用软件等多个环节,能够带动整个信息技术产业链的协同发展。推动生态建设:国产化战略有助于构建自主可控的软件生态,形成从底层技术到上层应用的完整体系。6.支持国家战略需求服务“数字中国”建设:软件国产化是“数字中国”战略的重要组成部分,能够为政府、企业和社会提供安全可靠的信息化支撑。助力“新基建”发展:在5G、人工智能、大数据等新基建领域,国产软件能够提供关键的技术支持,推动新型基础设施的建设。7.应对国际形势变化应对技术封锁:在国际形势复杂多变的背景下,软件国产化能够减少对国外技术的依赖,增强应对技术封锁和贸易摩擦的能力。维护国家利益:通过国产化战略,中国可以在关键领域实现自主可控,维护国家利益和主权。8.推动社会数字化转型提升公共服务水平:国产软件能够为政府、教育、医疗等公共服务领域提供更安全、高效的解决方案,推动社会数字化转型。促进普惠发展:国产化软件通常更贴近国内用户需求,能够为中小企业和个人用户提供更普惠的技术服务。总结软件国产化战略不仅是技术领域的自主创新,更是国家信息安全、经济发展和国际竞争力的重要保障。通过推动软件国产化,中国可以在全球信息技术领域占据更重要的地位,实现从“跟跑”到“并跑”再到“领跑”的跨越式发展。关于考试一、考察目标全面评估学生的Web应用开发能力,包括前端界面设计、后端逻辑处理、数据库操作及安全防护措施的实施,同时培养学生的团队合作、创新思维和问题解决能力。二、考察内容技术能力前端开发:HTML/CSS/JavaScript(含jQuery)基础。后端开发:服务器端语言(Python、Flask等)及框架(如Bootstrap等)使用,Web应用设计与实现。数据库操作:SQL数据库设计、增删改查操作,数据持久化。安全防护:常见的Web安全漏洞识别与防护(如SQL注入、XSS、CSRF等)。团队合作3-5人自由组合,明确分工,包括组长、前端开发、后端开发、数据库管理、安全专员等角色。组长负责整体协调、演示答辩,并提出创新点。创新与问题识别提出应用的创新点,展示对技术的深入理解和创新应用。列出项目中存在的漏洞,并说明已采用的或计划采用的防护措施。三、评分标准基础分(80分)完成基本的Web应用开发,包括前端界面、后端逻辑、数据库操作及安全防护。漏洞与防护(动态加分/扣分)自报漏洞不扣分,每发现并报告他人一个漏洞,加5分。若能提出有效的防护措施,不扣分;若无法防护,扣5分。

他人提出有效防护措施,加5分。演示与答辩(时间限制)每组有10分钟时间,包括5分钟演示和5分钟答辩。演示应清晰展示应用功能、技术实现和创新点。答辩环节回答其他组提问,展示对问题的深入理解和解决能力。提交材料(加分)提交完整的可运行代码和详细说明书。说明书质量评估,每组可加5-10分。组长根据整体表现和领导能力,额外加5-10分。四、考察流程项目准备期学生自由组队,明确分工,制定开发计划。开发与测试期团队合作完成Web应用开发,进行内部测试和安全检查。演示与答辩期每组按抽签进行演示和答辩,接受老师和其他组的提问。提交与评审期提交最终代码和说明书,老师根据评分标准进行综合评审。五、注意事项鼓励学生自主创新,但必须遵守学术诚信,不得抄袭他人作品。强调团队合作,要求每个成员都积极参与,贡献自己的力量。老师应公正客观,根据评分标准进行评分,并及时给予反馈和建议。提供必要的资源和支持,确保学生能够顺利完成项目开发。通过以上结构化方案,可以全面、公正地评估学生的Web应用开发能力,同时促进团队合作和创新思维的培养。扩展阅读:Web应用开发与安全防护第一篇

前端开发基础概述HTML基础CSS基础JavaScript基础1.1概述1.1.1认识WWW架构1.网页:基本文档2.网站:网页的集合3.浏览器:访问网站的工具1.1概述1.1.2

网页的组成1.HTML(超文本标记语言):网页的骨架2.CSS(层叠样式表):控制网页外观和布局3.JavaScript:实现网页的动态效果和交互概述HTML基础CSS基础JavaScript基础1.2HTML基础1.2.4HTML文件结构【index.html】<!DOCTYPE

html><html><head><meta

charset="UTF-8"><title>我的网页</title><link

rel="stylesheet"

href="styles.css"></head><body><h1>欢迎来到我的网页</h1><p>这是一个示例段落。</p><a

href="">访问示例网站</a></body></html>1.2HTML基础1.2.5文本段落

1.

段落标签:<p>这是一个段落。</p>

2.

标题标签:<h1>一级标题</h1>、<h2>二级标题</h2>

3.

换行标签:这是一行文本。<br>这是下一行文本。

4.

水平线标签:<hr>

5.

预格式化文本标签:<pre>这是预格式化的文本。

保留空格和换行。</pre>

6.

块级引用标签:<blockquote>这是引用的段落。</blockquote>

7.

地址标签:<address>作者:张三<br>邮箱:zhang@163.com</address>1.2HTML基础1.2.6对文本的强调

1.

加粗标签:<b>这是加粗的文本</b>或<strong>这是重要的文本</strong>

2.

斜体标签:<i>这是斜体的文本</i>或<em>这是强调的文本</em>

3.

下划线标签:<u>这是下划线的文本</u>

4.

删除线标签:<s>这是已删除的文本</s>或<del>这是不再适用的文本</del>

5.

高亮标签:<mark>这是高亮显示的文本</mark>1.2HTML基础1.2.7多媒体与超链接多媒体

1.

图像:<img

src="image.jpg"

alt="描述性文本"

width="500"

height="300">

2.

音频:<audio

controls>

<source

src="audio.mp3"

type="audio/mpeg">

您的浏览器不支持

audio

元素。

</audio>

3.

视频:<video

width="640"

height="360"

controls>

<source

src="video.mp4"

type="video/mp4">

您的浏览器不支持

video

元素。

</video>1.2HTML基础1.2.7多媒体与超链接超链接

1.

基本超链接:<a

href="">访问示例网站</a>

2.

锚点链接:<a

href="#section2">跳转到第二节</a>

...

<h2

id="section2">第二节标题</h2>

3.

电子邮件链接:<a

href="mailto:example@">发送邮件</a>

4.

电话链接:<a

href="tel:+1234567890">拨打电话</a>1.2HTML基础1.2.8列表与表格列表

1.

无序列表:

<ul>

<li>列表项1</li>

<li>列表项2</li>

<li>列表项3</li>

</ul>

2.

有序列表:<ol>

<li>列表项1</li>

<li>列表项2</li>

<li>列表项3</li></ol>

3.

定义列表:

<dl>

<dt>术语1</dt>

<dd>描述1</dd>

<dt>术语2</dt>

<dd>描述2</dd></dl>1.2HTML基础1.2.8列表与表格表格1.基本表格结构<table>

<tr>

<th>列标题1</th>

<th>列标题2</th>

</tr>

<tr>

<td>数据1</td>

<td>数据2</td>

</tr>

</table>1.2HTML基础1.2.8列表与表格表格2.表格属性3.表格标题与摘要

<table

border="1"

cellpadding="10"

cellspacing="5">

<!--

表格内容

-->

</table><table>

<caption>表格标题</caption>

<summary>表格摘要信息</summary>

<!--

表格内容

--></table>1.2HTML基础1.2.8列表与表格表格4.表格分组<table>

<thead>

<tr>

<th>列标题1</th>

<th>列标题2</th>

</tr>

</thead>

<tbody>

<tr>

<td>数据1</td>

<td>数据2</td>

</tr>

</tbody>

<tfoot>

<tr>

<td

colspan="2">表尾信息</td>

</tr>

</tfoot></table>1.2HTML基础1.2.9表单与内嵌式网页表单(Form):收集用户输入数据<form

action="/submit"

method="post">

<label

for="username">用户名:</label>

<input

type="text"

id="username"

name="username">

<label

for="password">密码:</label>

<input

type="password"

id="password"

name="password">

<input

type="submit"

value="提交"></form>1.2HTML基础1.2.9表单与内嵌式网页内嵌式网页(Iframe)结合使用<iframe

src=""

width="600"

height="400"></iframe><form

action="/submit"

method="post">

<label

for="username">用户名:</label>

<input

type="text"

id="username"

name="username">

<label

for="embedded-content">嵌入内容:</label>

<iframe

src="/embedded-form"

width="600"

height="400"></iframe>

<input

type="submit"

value="提交"></form>概述HTML基础CSS基础JavaScript基础1.3CSS基础1.3.1在网页中加入CSS样式1.内联样式

2.内部样式表<p

style="color:

red;

font-size:

16px;">这是一个带有内联样式的段落。</p><head>

<style>

body

{

background-color:

#f0f0f0;

}

p

{

color:

blue;

font-size:

18px;

}

</style></head>1.3CSS基础1.3.1在网页中加入CSS样式3.外部样式表

<!--

在HTML文档的<head>部分

-->

<head>

<link

rel="stylesheet"

type="text/css"

href="styles.css">

</head>

<!--

在styles.css文件中

-->

body

{

background-color:

#f0f0f0;

}

p

{

color:

blue;

font-size:

18px;

}1.3CSS基础1.3.1在网页中加入CSS样式4.使用CSS框架

<!--

引入Bootstrap

CSS框架

-->

<link

rel="stylesheet"

href="/bootstrap/4.5.2/css/bootstrap.min.css">

<!--

使用Bootstrap的样式类

-->

<div

class="container">

<p

class="text-center">这是一个使用Bootstrap样式的段落。</p>

</div>1.3CSS基础1.3.2规则的组成1.选择器:2.声明块:p、.myClass、#myId、[type="text"]、:hoverp

{

color:

blue;

font-size:

16px;}1.3CSS基础1.3.3文字效果

1.

颜色:

p

{color:

red;}

2.

字体大小:p

{font-size:

16px;}

3.

字体家族:

p

{font-family:

Arial,

sans-serif;}

4.

字体加粗:

p

{font-weight:

bold;}

5.

字体样式:

p

{font-style:

italic;}

6.

文本对齐:

p

{text-align:

center;}

7.

文本装饰:

a

{text-decoration:

none;}

8.

文本阴影:

p

{text-shadow:

2px

2px

5px

rgba(0,

0,

0,

0.3);}

9.

文字间距:

p

{letter-spacing:

2px;}

10.

行高:

p

{line-height:

1.5;}1.3CSS基础1.3.4背景效果1.

背景颜色:body

{background-color:

#f0f0f0;}2.

背景图像:body

{background-image:

url('background.jpg');}3.

背景重复:body

{background-repeat:

no-repeat;}4.

背景位置:body

{background-position:

center

center;}5.

背景大小:body

{background-size:

cover;}6.

背景附着:body

{background-attachment:

fixed;}

7.

背景简写:body

{background:

#f0f0f0

url('background.jpg')

no-repeat

center

center

/

cover

fixed;}

1.3CSS基础1.3.5

设计边框与列表样式边框样式

1.

边框宽度:.element

{border-width:

2px;}

2.

边框样式:.element

{border-style:

solid;}

3.

边框颜色:.element

{border-color:

#333;}列表样式

1.

列表标记类型:ul

{list-style-type:

square;}

2.

列表标记图像:ul

{list-style-image:

url('marker.png');}

3.

列表标记位置:ul

{list-style-position:

outside;}

4.

列表样式简写:ul

{list-style:

square

url('marker.png')

outside;}1.3CSS基础1.3.6

设计版面与特效版面设计:1.布局模型Flexbox:

.container

{

display:

flex;

justify-content:

space-between;

/*

水平分布

*/

align-items:

center;

/*

垂直居中

*/

}Grid:

.grid-container

{

display:

grid;

grid-template-columns:

repeat(3,

1fr);

/*

三列等宽布局

*/

grid-template-rows:

auto;

}1.3CSS基础3.6使用CSS设计版面与特效版面设计:2.定位相对定位:

.element

{

position:

relative;

top:

10px;

/*

向下偏移10px

*/

left:

20px;

/*

向右偏移20px

*/

}绝对定位:

.parent

{

position:

relative;

}

.child

{

position:

absolute;

top:

0;

right:

0;

}1.3CSS基础1.3.6

设计版面与特效版面设计:3.浮动与清除浮动浮动:

.float-left

{

float:

left;

}清除浮动:

.clear

{

clear:

both;

}1.3CSS基础3.6使用CSS设计版面与特效特效设计:1.过渡

.element

{

transition:

background-color

0.5s

ease;

}

.element:hover

{

background-color:

#f00;

}1.3CSS基础1.3.6

设计版面与特效特效设计:2.变换

.element

{

transform:

rotate(45deg);

/*

旋转45度

*/

}1.3CSS基础1.3.6

设计版面与特效特效设计:3.动画

@keyframes

example

{

0%

{background-color:

red;

left:

0px;

top:

0px;}

25%

{background-color:

yellow;

left:

200px;

top:

0px;}

50%

{background-color:

blue;

left:

200px;

top:

200px;}

75%

{background-color:

green;

left:

0px;

top:

200px;}

100%

{background-color:

red;

left:

0px;

top:

0px;}

}

.element

{

animation-name:

example;

animation-duration:

4s;

animation-timing-function:

linear;

animation-iteration-count:

infinite;

}1.3CSS基础1.3.6

设计版面与特效特效设计:4.阴影与渐变阴影:

.element

{

box-shadow:

10px

10px

5px

rgba(0,

0,

0,

0.3);

}渐变:

.gradient-background

{

background:

linear-gradient(to

right,

red,

yellow);

}1.3CSS基础1.3.7

创建示例【CSS.html】<!DOCTYPE

html><html

lang="en"><head>

<meta

charset="UTF-8">

<meta

name="viewport"

content="width=device-width,

initial-scale=1.0">

<title>CSS

Special

Effect

Button</title>

<style>

.special-button

{

background-color:

#4CAF50;

/*

绿色背景

*/

border:

none;

/*

无边框

*/

color:

white;

/*

白色文字

*/

padding:

15px

32px;

/*

内边距

*/

text-align:

center;

/*

文字居中

*/

text-decoration:

none;

/*

无下划线

*/

display:

inline-block;

/*

行内块级元素

*/

font-size:

16px;

/*

字体大小

*/

margin:

4px

2px;

/*

外边距

*/

cursor:

pointer;

/*

鼠标悬停时显示指针

*/

border-radius:

12px;

/*

圆角边框

*/

transition:

background-color

0.3s;

/*

背景颜色过渡效果

*/

}

.special-button:hover

{

background-color:

#45a049;

/*

鼠标悬停时背景颜色变深

*/

}

.special-button:active

{

background-color:

#45a049;

/*

点击时背景颜色变深

*/

box-shadow:

0

5px

#666;

/*

点击时产生阴影

*/

transform:

translateY(4px);

/*

点击时按钮下移

*/

}

</style></head><body><button

class="special-button">点击我</button></body></html>概述HTML基础CSS基础JavaScript基础1.4JavaScript基础1.4.1认识JavaScript1.基本特性动态类型面向对象事件驱动2.主要用途网页开发服务器端开发:Nodes.js移动应用开发:ReactNative、Cordova1.4JavaScript基础1.4.1认识JavaScript3.语法特点简洁明了灵活多变异步处理4.生态系统丰富的库和框架:jQuery、React、Vue、Angular社区支持5.学习建议基础语法DOM操作异步编程实践项目1.4JavaScript基础1.4.2在网页中加入JavaScript程序

1.

编写JavaScript代码:script.js

2.

在HTML文件中引用JavaScript文件:<script

src="path/to/your/script.js"></script>

3.

直接在HTML文件中编写JavaScript代码:<script>console.log("Hello,

World!");</script>

4.

注意执行时机:window.onload事件或DOMContentLoaded事件

5.

调试和测试:F121.4JavaScript基础1.4.3改变网页内容1.

修改文本内容:document.getElementById("myElement").innerHTML

=

"新的内容";document.getElementById("myElement").textContent

=

"新的内容";

2.

修改HTML结构:document.getElementById("myDiv").innerHTML

=

"<p>这是一个新的段落。</p>";

3.

修改样式:document.getElementById("myElement").style.color

=

"red";

document.getElementById("myElement").style.fontSize

=

"20px";1.4JavaScript基础1.4.3改变网页内容4.

添加或删除元素:

//

创建一个新的元素

var

newElement

=

document.createElement("div");

newElement.textContent

=

"我是一个新元素";

//

将新元素添加到现有元素中

document.getElementById("myContainer").appendChild(newElement);

//

删除一个元素

var

elementToRemove

=

document.getElementById("elementToRemove");

elementToRemove.parentNode.removeChild(elementToRemove);5.

响应用户事件:document.getElementById("myButton").addEventListener("click",

function()

{

document.getElementById("myText").textContent

=

"按钮被点击了!";

});1.4JavaScript基础1.4.4DOM与事件处理DOM对象模型1.主要特点文档树节点类型遍历和修改2.常用操作获取元素:document.getElementByIddocument.getElementsByClassNamedocument.getElementsByTagNam修改内容:innerHTML、textContent修改样式:style属性或classList方法添加、删除元素:createElement、appendChild、removeChild1.4JavaScript基础1.4.4DOM与事件处理事件处理1.主要事件类型鼠标事件:如click(点击)、mouseover(鼠标悬停)、mouseout(鼠标移出)等键盘事件:如keydown(按键按下)、keyup(按键释放)等表单事件:如submit(表单提交)、change(输入值改变)等2.事件处理步骤(1)选择元素;(2)添加事件监听器(addEventListener);(3)定义回调函数。3.示例代码://

选择元素var

button

=

document.getElementById("myButton");

//

添加点击事件监听器button.addEventListener("click",

function()

{

alert("按钮被点击了!");});1.4JavaScript基础1.4.5操作示例示例1:获取元素并修改其内容【1.4.5.示例1.html】示例2:设置元素属性【1.4.5.示例2.html】示例3:修改元素样式【1.4.5.示例3.html】示例4:处理事件【1.4.5.示例4.html】1.4JavaScript基础1.4.6控制浏览器1.

打开新窗口或标签页:window.open('',

'_blank');

2.

关闭当前窗口:window.close();

3.

调整窗口大小:window.resizeTo(800,

600);

4.

滚动页面:window.scrollTo(0,

100);

5.

设置或获取窗口的定时器:

//

设置一个定时器,在3秒后执行指定的函数

var

timer

=

window.setTimeout(function()

{

alert('3秒已过!');

},

3000);

//

清除定时器

window.clearTimeout(timer);1.4JavaScript基础1.4.6控制浏览器

6.

控制浏览器历史记录:

//

加载历史记录中的上一个页面

window.history.back();

//

加载历史记录中的下一个页面

window.history.forward();

//

加载特定的URL到浏览器历史记录中

window.history.pushState({page:

1},

"Title

1",

"?page=1");

7.

获取窗口信息:

var

width

=

window.innerWidth;

var

height

=

window.innerHeight;

console.log('窗口宽度:',

width,

'像素');

console.log('窗口高度:',

height,

'像素');1.4JavaScript基础1.4.6控制浏览器

8.

创建对话框:

//

显示一个警告框

window.alert('这是一个警告框!');

//

显示一个确认框,并获取用户的选择

var

userConfirmed

=

window.confirm('你确定要继续吗?');

if

(userConfirmed)

{

console.log('用户点击了“确定”');

}

else

{

console.log('用户点击了“取消”');

}

//

显示一个输入框,并获取用户输入的值

var

userInput

=

mpt('请输入你的名字:');

console.log('用户输入了:',

userInput);1.4JavaScript基础1.4.7JavaScript语法1.

变量声明:

var

name

=

"Alice";

let

age

=

25;

const

PI

=

3.14;2.

数据类型:

let

str

=

"Hello,

World!";

let

num

=

42;

let

bool

=

true;

let

obj

=

{name:

"Bob",

age:

30};

let

arr

=

[1,

2,

3,

4,

5];3.

运算符:

let

sum

=

5

+

3;

//

算术运算符

let

count

=

0;

count

+=

1;

//

赋值运算符

let

isEqual

=

(5

>

3);

//

比较运算符

let

isTrue

=

(true

&&

false);

//

逻辑运算符1.4JavaScript基础1.4.7JavaScript语法4.

条件语句:

let

score

=

85;

if

(score

>=

60)

{

console.log("及格");

}

else

{

console.log("不及格");

}switch

(day)

{

case

'Monday':

console.log('今天是星期一');

break;

case

'Tuesday':

console.log('今天是星期二');

break;

default:

console.log('今天是其他日子');

}1.4JavaScript基础4.7JavaScript语法5.

循环语句:

for

(let

i

=

0;

i

<

5;

i++)

{

console.log(i);

}

let

j

=

0;

while

(j

<

5)

{

console.log(j);

j++;

}

let

k

=

0;

do

{

console.log(k);

k++;

}

while

(k

<

5);1.4JavaScript基础1.4.7JavaScript语法6.

函数:

function

greet(name)

{

console.log("Hello,

"

+

name

+

"!");

}

const

add

=

(a,

b)

=>

a

+

b;7.

对象字面量:

let

person

=

{

name:

"John",

age:

30,

greet:

function()

{

console.log("Hello,

my

name

is

"

+

);

}

};1.4JavaScript基础1.4.7JavaScript语法8.

数组:let

fruits

=

["Apple",

"Banana",

"Cherry"];9.

模板字符串(ES6+):

let

name

=

"Alice";

let

greeting

=

`Hello,

${name}!`;10.

解构赋值(ES6+):

let

arr

=

[1,

2,

3];

let

[a,

b,

c]

=

arr;

//

a

=

1,

b

=

2,

c

=

3

let

obj

=

{name:

"Bob",

age:

30};

let

{name,

age}

=

obj;

//

name

=

"Bob",

age

=

301.4JavaScript基础1.4.8常见DOM事件1.

鼠标事件:点击事件(click):document.getElementById('myButton').addEventListener('click',

function()

{

alert('Button

clicked!');

});鼠标移入事件(mouseover):document.getElementById('myDiv').addEventListener('mouseover',

function()

{

this.style.backgroundColor

=

'yellow';

});鼠标移出事件(mouseout):document.getElementById('myDiv').addEventListener('mouseout',

function()

{

this.style.backgroundColor

=

'';

});1.4JavaScript基础1.4.8常见DOM事件2.

键盘事件:按键按下事件(keydown):document.addEventListener('keydown',

function(event)

{

if

(event.key

===

'Enter')

{

alert('Enter

key

pressed!');

}

});按键抬起事件(keyup):document.getElementById('myInput').addEventListener('keyup',

function()

{

console.log('Input

value:',

this.value);

});1.4JavaScript基础1.4.8常见DOM事件3.

表单事件表单提交事件(submit):document.getElementById('myForm').addEventListener('submit',

function(event)

{

event.preventDefault();

//

阻止表单默认提交行为

alert('Form

submitted!');

});

输入框变化事件(input):document.getElementById('myInput').addEventListener('input',

function()

{

console.log('Input

value

changed:',

this.value);

});1.4JavaScript基础1.4.8常见DOM事件4.

窗口事件窗口加载事件(load):window.addEventListener('load',

function()

{

console.log('Window

loaded!');

});窗口调整大小事件(resize):window.addEventListener('resize',

function()

{

console.log('Window

resized

to:',

window.innerWidth,

window.innerHeight);

});1.4JavaScript基础1.4.8常见DOM事件5.

拖拽事件拖拽开始事件(dragstart):document.getElementById('myDraggable').addEventListener('dragstart',

function(event)

{

event.dataTransfer.setData('text/plain',

event.target.id);

});拖拽进入目标事件(dragenter):document.getElementById('myDropzone').addEventListener('dragenter',

function(event)

{

event.preventDefault();

this.style.border

=

'3px

solid

blue';

});拖拽离开目标事件(dragleave):document.getElementById('myDropzone').addEventListener('dragleave',

function()

{

this.style.border

=

'';

});1.4JavaScript基础1.4.8常见DOM事件5.

拖拽事件拖拽放置事件(drop):document.getElementById('myDropzone').addEventListener('drop',

function(event)

{

event.preventDefault();

var

data

=

event.dataTransfer.getData('text');

alert('Dropped

data:',

data);

});document.getElementById('myDropzone').addEventListener('dragleave',

function()

{

this.style.border

=

'';

});1.4JavaScript基础1.4.9

DOM事件处理示例1.HTML部分【DOM.html】2.JavaScript部分(script.js)【script.js】3.代码解释扩展阅读:Web应用开发与安全防护第二篇

后端开发基础Python基础创建Flask应用创建数据库注册和登录功能FlaskBootstarpFlaskjQueryFlaskLogin搭建服务器第2章Python基础2.2变量和数据类型1.

变量2.

数据类型:int,float,complex,str,list,tuple,set,dict,bool,None2.3控制结构1.

条件语句i_int

=

10f_float=3.14s_str

=

"Hello,

World!"l_list

=

["apple",

"banana",

"cherry"]t_set

=

{1,

2,

3,

4,

5}d_dict

=

{'name':

'Alice',

'age':

25}b_bool=Truex

=

10if

x

>

5:

print("x

is

greater

than

5")elif

x

==

5:

print("x

is

equal

to

5")else:

print("x

is

less

than

5")统信UOS常用Shell命令:第2章Python基础2.3控制结构2.

循环语句#

使用break语句for

i

in

range(10):

if

i

==

5:

break

#

当i等于5时退出循环

print(i)

#

使用continue语句for

i

in

range(10):

if

i

%

2

==

0:

continue

#

跳过偶数

print(i)

#

只打印奇数fruits

=

["apple",

"banana",

"cherry"]for

f

in

fruits:

print(f)count

=

0while

count

<

5:

print(ccount)

count

+=

1#

嵌套循环示例for

i

in

range(3):

for

j

in

range(2):

print(f"i={i},

j={j}")第2章Python基础2.4函数1.

定义函数2.

调用函数3.

参数4.

返回值5.

局部和全局变量6.Lambda函数7.

文档字符串8.

嵌套函数9.

闭包def

my_function(param1,

param2):

#

函数体

result

=

param1

+

param2

return

resultresult

=

my_function(5,

10)print(result)

#

输出:

15my_lambda

=

lambda

x,

y:

x

+

yprint(my_lambda(5,

10))

#

输出:

15第2章Python基础2.5类和对象1.

类(Class)2.

对象(Object)3.

示例代码4.

注意事项class

Dog:

#

类属性(通常用于定义所有实例共享的常量)

species

=

"Canis

familiaris"

def

__init__(self,

name,

age):

#

实例属性

=

name

self.age

=

age

def

bark(self):

#

实例方法

return

f"{}

says

Woof!"#

创建对象实例d

=

Dog("Rex",

3)

#

访问属性print()

#

输出:

Rex#

调用方法print(d.bark())

#

输出:

Rex

says

Woof!第2章Python基础2.6模块和包1.

模块(Module)2.

包(Package)3.

使用模块和包的好处import

mathmypackage/

__init__.py

module1.py

module2.py

subpackage/

__init__.py

module3.pyfrom

mypackage.module1

import

some_function第2章Python基础2.7文件操作1.

打开文件2.

读取文件3.

写入文件4.

关闭文件5.

文件路径file

=

open('filename.txt',

'r')

#

打开'filename.txt'文件('r'表示读取模式)content

=

file.read()

#

读取整个文件内容lines

=

file.readlines()

#

读取文件的所有行,并将它们作为列表返回file

=

open('data/filename.txt',

'w')file.write('Hello,

world!')

#

将字符串'Hello,

world!'写入文件file.close()

#

关闭文件with

open('Home/www/data/filename.txt',

'w')

as

file:

file.write('Hello,

world!')

#

文件会在with块结束时自动关闭第2章Python基础2.8异常处理1.

异常处理的基本结构2.

示例代码3.

捕获多个异常4.

捕获所有异常5.

自定义异常try:

#

可能引发异常的代码

result

=

10

/

0

#

这将引发一个ZeroDivisionError异常except

ZeroDivisionError:

#

处理ZeroDivisionError异常的代码

print("除数不能为零!")else:

#

如果没有异常发生,则执行这里的代码

print(f"结果是:{result}")finally:

#

无论是否发生异常,都会执行这里的代码

print("执行完毕。")第2章Python基础2.9标准库和第三方库1.Python标准库:os,sys,math,random,time,datetime,re,json,argparse,logging2.Python第三方库:NumPy,Pandas,SciPy,Matplotlib,Flask,Django,Requests,Scrapy,NLTK,spaCy,TextBlob,Pillow,OpenCV,Scikit-learn,PyTorch,TensorFlow,SQLAlchemy,sqlite3,PyQt/Python基础创建Flask应用创建数据库注册和登录功能FlaskBootstarpFlaskjQueryFlaskLogin搭建服务器第3章Flask基础:3.1创建FlaskWeb应用步骤1:安装Flask步骤2:创建Flask应用【app.py】#

app.pyfrom

flask

import

Flask,

render_template

app

=

Flask(__name__)

@app.route('/')def

home():

return

render_template('index.html',

message='Hello,

World!')

@app.route('/about')def

about():

return

render_template('about.html')

if

__name__

==

'__main__':

app.run(debug=True)$

pip3

install

Flask第3章Flask基础:3.1创建FlaskWeb应用步骤3:创建模板:【templates/index.html】<!DOCTYPE

html><html

lang="en"><head>

<meta

charset="UTF-8">

<meta

name="viewport"

content="width=device-width,

initial-scale=1.0">

<title>Home</title></head><body>

<h1>{{

message

}}</h1>

<a

href="{{

url_for('about')

}}">About</a></body></html>第3章Flask基础:3.1创建FlaskWeb应用步骤3:创建模板:【templates/about.html】<!DOCTYPE

html><html

lang="en"><head>

<meta

charset="UTF-8">

<meta

name="viewport"

content="width=device-width,

initial-scale=1.0">

<title>About</title></head><body>

<h1>About

Page</h1>

<p>This

is

the

about

page

of

our

Flask

application.</p>

<a

href="{{

url_for('home')

}}">Home</a></body></html>第3章Flask基础:3.1创建FlaskWeb应用步骤4:运行:$python3app.py$

python3

app.py

*

Serving

Flask

app

'app'

*

Debug

mode:

onWARNING:

This

is

a

development

server.

Do

not

use

it

in

a

production

deployment.

Use

a

production

WSGI

server

instead.

*

Running

on

http://:5000Press

CTRL+C

to

quit

*

Restarting

with

stat

*

Debugger

is

active!

*

Debugger

PIN:

111-895-224$sudolsof-i:5000$sudokill-9<PID>Python基础创建Flask应用创建数据库注册和登录功能FlaskBootstarpFlaskjQueryFlaskLogin搭建服务器第3章Flask基础:3.2创建数据库1.定义数据库模型:Flask-SQLAlchemy2.配置数据库连接:URI(统一资源标识符)3.创建数据库和表:4.(可选)迁移数据库:第3章Flask基础:3.2创建数据库步骤1:安装Flask-SQLAlchemy步骤2:定义Flask应用和数据库模型from

flask

import

Flaskfrom

flask_sqlalchemy

import

SQLAlchemy

app

=

Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI']

=

'sqlite:///site.db'

#

使用

SQLite

数据库作为示例app.config['SQLALCHEMY_TRACK_MODIFICATIONS']

=

False

db

=

SQLAlchemy(app)

class

User(db.Model):

id

=

db.Column(db.Integer,

primary_key=True)

username

=

db.Column(db.String(80),

unique=True,

nullable=False)

email

=

db.Column(db.String(120),

unique=True,

nullable=False)

def

__repr__(self):

return

f'<User

{self.username}>'$

pip3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论