首页
Github
友链
壁纸
更多
关于我
Search
1
基于php laravel框架,mvc模式的员工管理系统
180 阅读
2
基于前端z轴的三维动画
134 阅读
3
前端canvas实现的微信飞机大战练习
122 阅读
4
SqlServer数据库
119 阅读
5
前后端分离vue+axios调用网络api的音乐播放器
94 阅读
默认分类
编程
登录
Search
标签搜索
学习
python
html
mysql
sql
bai1hao
累计撰写
23
篇文章
累计收到
1
条评论
首页
栏目
默认分类
编程
页面
Github
友链
壁纸
关于我
搜索到
23
篇与
的结果
2024-11-05
深度优先回溯算法生成地图
{bilibili bvid="BV1Y7D8Y6EVo" page=""/}
2024年11月05日
15 阅读
0 评论
0 点赞
2024-11-05
Vue.js入门
vue.js入门原文创建时间:2021年-2023年间标签(空格分隔): js vue特点(优势)不需要考虑对dom元素的操作,数值更改网页即时更新官方帮助文档https://cn.vuejs.org/导包<!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>语法html中{{ data名 }} 叫作插值表达式<div id="app"> {{message}} </div>js中var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } })特殊情况:js中有school对象时 let test = new Vue({ el:"#app", data:{ number:"1239843", school:{ name:"某某大学", adress:"某某路" } } })在html中通过 . (英文句号)取用school的内容<div id="app"> {{school.name}} </div>vue指令(v-)v-text 设置标签内容html中<div id="app"> <h1 v-text="message+'文字'"></h1> </div>与<div id="app"> <h1> {{message}}+文字 </h1> </div>作用几乎相同,只是{{}}更方便,v-text会改变h1内所有值v-html大部分与v-text相同不同点:text不解析html标签,html会将里面的标签解析v-on 事件绑定官方说明文档:https://cn.vuejs.org/v2/api/#v-oneg. 绑定click事件html中<input id="btn1" type="button" value="v-on指令" v-on:click="doIt">简写<input id="btn1" type="button" value="v-on指令简写" @click="doIt">js中let btn = new Vue({ el:"#btn1", methods:{ doIt:function(a){ alert("执行方法"+a); } } })eg. @ablclick 双击事件(用法同上)传参:@clilck="doIt(5)"通过英文句号"."绑定事件监听器<input type="text" @keyup.enter="woc(555)">v-show 控制display:nonev-show="boolean";如果是false,则该元素为display:none;v-if 控制dom树v-if="boolean";如果是false,则该元素从dom树中消失注意:频繁切换显示的元素用v-show,dom树改变更消耗性能v-bind 操作元素的属性原生html的属性<img src="">用v-bind<img v-bind:src="imgSrc">简写<img :src="imgSrc">let app = new Vu({ el:"img", data:{ imgSrc:"图片地址" } })v-for 从数组取值依次生成数组长度的元素以下分别是对数据,对象,索引的取用html<div id="vfor"> <p v-for="item in arr"> {{item}} </p> <div v-for="item in objArr"> {{item.name}} </div> <div v-for="(item,index) in arr"> {{index}} </div> </div>jslet vfor = new Vue({ el:"#vfor", data:{ arr:[ "摩洛哥","华盛顿","洛杉矶" ], objArr:[ {name:"jack"},{name:"pick"},{name:"mike"} ] } })效果:摩洛哥华盛顿洛杉矶jackpickmike012v-model 双向同步信息html<div id="vmodel"> <input type="button" value="切换" @click="setMg(666)"> <input type="text" v-model="message" @keyup.enter="tips"> </div>jslet vmodel = new Vue({ el:"#vmodel", data:{ message:"wow" }, methods:{ setMg:function(a){ this.message=a; }, tips:function(){ alert(this.message); } } })v-model中的信息可以在输入框和变量中同步更新v-once作用:使某数据只渲染一次<div v-once id="app"> {{school.name}} </div>在此后对school.name修改将不会发生变化数据与方法Object.freeze()Object.freeze(obj)obj对象将不再是应式带$符号的方法var data = { a: 1 } var vm = new Vue({ el: '#example', data: data }) vm.$data === data // => true vm.$el === document.getElementById('example') // => true // $watch 是一个实例方法 vm.$watch('a', function (newValue, oldValue) { // 这个回调将在 `vm.a` 改变后调用 })生命周期钩子补充:axios 功能强大的网络请求库在线导包<script src="https://unpkg.com/axios/dist/axios.min.js"></script>watch 监听属性当data 中 name 变化时,watch 会自动执行watch:{ name(newName,oldName){ console.log(newName) } }组件(components)组件注册注意:在文档中,组件必须注册在Vue实例之前全局注册Vue.component({'组件名',{ data(){ data1:"数据1" }, methods:{ method1(){console.log('HelloVue!')} }, template:{ <div>根标签 <h2>标题2</h2> <p>所有内容都要在根标签下,必须有且只能有一个根标签</p> </div> } })局部注册通过props向子组件传递数据props功能:自定义attribute,通过组件标签的attribute子组件传递数据Vue.component('test',{ props:['title','text'], template:` <h3>{{title}}</h3> <p>{{text}}</p> ` }) <div id="app"> <test title="I'm a title" text="Some words here"></test> </div>监听子组件事件功能:使子组件可操作父组件的数据命名注意事项使用 in-DOM 模板时,您不能使用 v-on 来监听 camelCase(驼峰命名) 事件。you cannot use v-on to listen to camelCase events when using in-DOM templates.new Vue({ el:"#app", data:{ count:0 } })Vue.component('test',{ template:` <div> <h3>标题</h3> <button v-on:clic="$emit('do-it')">父级count加一</button> </div> ` }) <div id="app"> {{count}} <test v-on:do-it="count++"></test> </div>
2024年11月05日
24 阅读
0 评论
1 点赞
2024-10-30
AutoCS6Limited_v0.1
AutoCS6Limited v0.1Copyright © 2024 bai1hao. All rights reserved.{callout color="#ef4d4d"}声明:本软件仅供学习用,请在下载后24小时内删除{/callout}{card-describe title="注意事项"}注:软件保存在本地的json数据并未加密,卸载后需手动删除软件根目录{/card-describe}{gird column="2" gap="15"}{gird-item} {/gird-item}{gird-item}截止0.1测试版,仅对Python序列-练习题生效。导出的json文件自动归纳错题集。停止优化,卡顿属于正常现象。修改密码后,需要点击保存数据{/gird-item}{/gird}{lamp/}安装包链接:https://1.14.60.18:13444/down/3yTYg8jMuu59.exe 提取码:bai1hao{lamp/}{gird column="2" gap="10"}{gird-item}{/gird-item}{gird-item}{/gird-item}{/gird}
2024年10月30日
32 阅读
0 评论
3 点赞
2024-10-27
python开发笔记
输出的json文件中文显示为编码形式解决方法:json.dump方法加上ensure_ascii=False参数json.dump(paper,open("questions/ques%s.json"%time.time(),"w",encoding='utf-8'),ensure_ascii=False)
2024年10月27日
19 阅读
0 评论
0 点赞
2024-10-23
SqlServer数据库
概念1.术语DB(Database) DBMS(Database Management System)DBS(Database System)2.关系数据模型关系:二维表元组:行属性:列(属性名唯一)主码(主键):唯一确定一个元组的属性组域:属性的取值范围分量:元组中的一个属性值数据模型每个实体转为一个二维表多对多关系必须有关系表(中间表)关系运算三种传统集合运算1.并并集运算2.差差集运算3.交交集运算特有运算1.笛卡尔积RxSR表m行n列S表p行q列RxS 的结果有mp行,n+q列S表的每一行分别与R表的每一行连接关系代数1.选择σF(R)F表示选择条件,是一个逻辑表达式表达式σ性别="男" and 年龄>20(学生)σ学号="010125" and 年龄>20(学生)2.投影π学号,年龄(R)学号年龄0101251901012620010127183.连接σ条件(RxS)σ学.学号=选.学号(学生x选修)意义:实现跨表查询案例1.σ性别="男" and 系="信息"(S)学号姓名性别系001王一男信息2.π姓名(σ性别="男"(S))姓名王一李二SQL语句数据库操作创建数据库create database StudScore_DB1修改数据库alter database databasename删除数据库drop database StudScore_DB2表操作创建表create table StudInfo( StudNo varchar(15) primary key, StudName varchar(20) not null, StudSex char(2) default '男' not null, StudBirthDay date null, ClassID varchar(10) not null );复合主键 / check约束显式命名:constraint [复合主键名字]隐式命名: 系统自己给一个名字Constraint PK_S_C primary Key(StudNo,CourseID) primary Key(StudNo,CourseID)create table StudScoreInfo( StudNo varchar(15), CourseID varchar(10), StudScore numeric(4,1) default 0 check(StudScore>0 and StudScore<=100), -- check 约束 Constraint PK_S_C primary Key(StudNo,CourseID) -- 建立复合主键 );标识符identity概括:设置自增的值数据类型:decimal int numeric smallint bigint tinyintcreate table StudScoreInfo( Seq_ID int identity(100001,1), -- 初值为100001,步长为1 StudNo varchar(15) Primary Key, StudName Varchar(30) not null );修改表{alert type="warning"}不建议在数据库投入使用后删除和修改列,后端调用会出问题{/alert}增加自增编号的新列alter table StudScoreInfo Add Seq_ID int Identity(1001,10)删除复合主键alter table StudScoreInfo drop constraint PK_S_C设置主键alter table StudScoreInfo add Constraint PK_T_C primary key(StudNo,CourseID)删除列alter table StudScoreInfo drop colume Seq_ID删除表drop table StudScoreInfo数据操作插入数据/新增数据insert into ClassInfo (ClassName,ClassID) values ('20000704','计算机2000'), ('20000705','高数2024');省略写法,但是要一一对应insert into ClassInfo values ('20000704','计算机2000'), ('20000705','高数2024');更新数据/修改数据update ClassInfo set ClassName='计科2000级',ClassDesc=NULL where ClassID='20000704'删除数据delete from ClassInfo where ClassID='20000704'truncate table删除所有记录功能相当于不带where字句的delete命令不能用于被别的表依赖的表不会对事务处理日志进行数据删除记录,因此不能激发触发器truncate table StudScoreInfo查询数据全部列select * from StudInfo部分列select StudNo,StudName,ClassID from StudInfo连接列(+)select StudNo+StudName,ClassID from StudInfo计算列select StudNo,CourseID,StudScore*0.8 from StudScoreInfodistinct 去重select distinct StudSex from StudInfo结果:男,女top n / top percenttop n:前n条数据top percent:前percent%的数据(百分比)select top 10 * from StudInfo select top 10 percent * from StudInfowith ties别名select StudNo as 学号,姓名=StudName,ClassName 班级编号 from StudInfointo将查询结果创建一个新的数据表select StudNo as 学号 into StudInfoBack from StudInfofrom[表名].[列名]表示某表下的列为join多表连接做准备,防止不同表的相同列名冲突select s.StudNo,s.StudName from StudInfo as s group by 和聚合函数聚合函数通常与group by 子句一起使用,对给定字段分组之后的结果进行分类汇总avg() 求平均值select StudNo,avg(StudScore) AvgScore from StudScoreInfo group by StudNo用cast函数保留小数位数select StudNo,cast(avg(StudScore) as numeric(4,1)) AvgScore from StudScoreInfo group by StudNocount() 计算数量select StudNo,count(*) CourseCount from StudScoreInfo group by StudNohaving指定分组搜索条件,是对分组之后的结果再次筛选{alert type="info"}必须与group by一起使用{/alert}与where语法的区别 wherehaving筛选在分组操作前筛选对分组操作之后的结果再次筛选作用域表和视图组直接引用别名不可以可以引用参与聚合函数和分组的别名查询平均分80分以上的学生记录 havingselect StudNo,sum(StudScore) as SumScore,count(*) CourseCount, cast(avg(StudScore) as numeric(4,1)) AvgScore from StudScoreInfo group by StudNo having avg(StudScore) >= 80统计80分以上的平均分,whereselect StudNo,sum(StudScore) as SumScore,count(*) CourseCount, cast(avg(StudScore) as numeric(4,1)) AvgScore from StudScoreInfo where StudScore >= 80 group by StudNo统计60分以下10门以上的学生平均分,where + havingselect StudNo,avg(StudScore) as AvgScore from StudScoreInfo where StudScore<60 group by StudNo having count(*)>=10order by排序升序:ASC(ascending)降序:DESC(descending)查询学生成绩,并按成绩高低排序select * from StudScoreInfo where StudNo='20050319001' order by StudScore desc按成绩高低排序,成绩相同的按课程编号升序排序select * from StudScoreInfo where StudNo='20050319001' order by StudScore desc,CourseID asc统计平均分,并排序select StudNo,avg(StudScore) as 平均分 from StudScoreInfo group by StudNo order by 平均分 descwhere子句比较运算符>:大于<:小于<> / != :不等于= :等于select * from StudScoreInfo where StudScore>70逻辑运算{alert type="info"}优先级:not > and > or{/alert}select * from StudScoreInfo where StudScore>=60 and StudScore<=70范围运算 between and和[列名] >= [值] and [列名]<=[值] 功能相同select * from StudScoreInfo where StudScore between 70 and 80inselect * from StudInfo where Studno in ('20050319001','99070405') 模式查询 like通配符% 包含零个或更多字符的任意字符串where StudName='%丽%'_任意单个字符-- where StudName like '_丽'[]指定该范围内包含的任意单个字符-- 大写ABC字母开头的 where CourseID like '[A-C]%'[^]函数系统内置函数字符串函数leftselect * from stsudinfo where left(right(studname,2),1)='丽'substringselect * from StudInfo where substring(StudName,2,1)='丽'charindex-- 输出2 select charindex('B','ABC') -- 输出0 select charindex('AD','ABCD') -- 从第四个开始查询,输出4 select charindex('B','ABCBDE',4)replace-- 将StudName中,所有‘李’,替换为‘张’ update StudInfo set StudName=replace(StudName,'李','张')
2024年10月23日
119 阅读
0 评论
1 点赞
1
...
3
4
5