首页
关于
留言
壁纸
更多
直播
统计
友链
Search
1
好用的软件分享
453 阅读
2
最新Navicat 15 for MySQL破解+教程 正确破解步骤
278 阅读
3
面试常见问题100问
247 阅读
4
一个人要走的时候,千万别问原因
194 阅读
5
直击心灵的唯美句子
163 阅读
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
编程
登录
Search
标签搜索
mysql
面试
python
django
express
axios
thinkphp
PHP
励志
哲理
九九乘法表
node
cors
跨域
唯美句子
美文
文件上传
ajax
算法
jwt
公子初心
累计撰写
79
篇文章
累计收到
12
条评论
首页
栏目
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
编程
页面
关于
留言
壁纸
直播
统计
友链
搜索到
79
篇与
的结果
2024-03-17
Python字典列表实现学生信息管理系统
# 需求:学生管理系统 实现 对学生的增删改查 students = [] def getIndexByStuId(stuId): for student in students: if stuId == student['stuId']: # 获取到这个字典对应的索引 return students.index(student) # 欢迎 def welcome(): msg = """ 欢迎使用<学生信息管理系统> 1.查询所有学生信息 2.添加 3.删除 4.修改 5.退出 """ return input(msg) # 查询 def show(): print("----------------正在[查询]--------------------") if students: print("学号\t\t\t名字\t\t\t年龄") for student in students: print(f"{student['stuId']}\t\t{student['name']}\t\t\t{student['age']}") else: print("暂无学生信息,请添加") # 添加 def add(): print("----------------正在[添加]--------------------") # 依次获取用户输入的数据 # 存到字典中 student = {} # 获取用户的学号后,要去查一查此学号是否存在 如果存在则提示用户重新输入 如果不存在 则正常添加 while True: stuId = input("请输入学号:") i = getIndexByStuId(stuId) if i == None: student['stuId'] = stuId student['name'] = input("请输入名字:") student['age'] = int(input("请输入年龄:")) # print(student) # 把字典添加到列表 students.append(student) break else: print("请重新输入新的学号") # 删除 def delete(): print("----------------正在[删除]--------------------") while True: # 接收学号 stuId = input('请输入想要删除的学生的学号') # 获取索引 i = getIndexByStuId(stuId) if i == None: print("学号不存在,请重新输入") else: students.pop(i) print("删除成功") break # for student in students: # if stuId == student['stuId']: # break # # 删除 # students.remove(student) # print(students) # 修改 def update(): print("----------------正在[修改]--------------------") while True: # 接收学号 user_input = input('请输入想要修改的学生的学号(如果想退出请输入"q")') if user_input == 'q': break i = getIndexByStuId(user_input) # None if i == None: print("学号不存在,请重新输入(如果想退出请输入'q')") else: # 根据列表的索引找到列表中的字典 while True: stuId = input(f"请输入新的学号({students[i]['stuId']})[回车表示不修改]") # 根据学号查询索引 index = getIndexByStuId(stuId) if i != index: print("学生id已存在") else: break name = input(f"请输入新的姓名({students[i]['name']})[回车表示不修改]") age = input(f"请输入新的年龄({students[i]['age']})[回车表示不修改]") # # 如果为true说明改了,如果为false说明没改 students[i]['stuId'] = stuId if stuId else students[i]['stuId'] students[i]['name'] = name if name else students[i]['name'] students[i]['age'] = age if age else students[i]['age'] break print(students) pass while True: # 欢迎 num = welcome() match num: case '1': show() case '2': add() case '3': # 查看列表中是否有数据,如果有才往下执行 if students: show() delete() show() else: print("暂无数据,请添加") case '4': # 查看列表中是否有数据,如果有才往下执行 if students: show() update() else: print("暂无数据,请添加") case '5': print("欢迎下次使用") break case _: print("输入有误,请重新输入")
2024年03月17日
33 阅读
0 评论
0 点赞
2024-03-17
PHP实现万年历
<style> * { margin: 0; padding: 0; } .box { display: flex; border: 1px solid red; flex-wrap: wrap; justify-content: center; } table { width: 20%; height: 300px; background: pink; margin: 5px; } td { text-align: center; } .tr1 { font-size: 20px; color: red; } .active { color: blue; } .h1 { text-align: center; font-weight: 100; color: blueviolet; } </style> <?php $year = 2025; // 获取当前的年月 $month = date('n'); $d = date('d'); $html="<h1 class='h1'>{$year}年万年历</h1>"; $html .= "<div class='box'>"; // 1.因为每一年都有12个月,所以要循环12次,每月都是1个table表格 for($m=1;$m<=12;$m++){ $html.= "<table>"; // 输出年月 $html.="<tr class='tr1'><th colspan='7'>{$year} 年 {$m} 月</th></tr>"; // 输出星期几 $html.="<tr><td>日</td><td>一</td><td>二</td><td>三</td> <td>四</td><td>五</td><td>六</td></tr>"; // 每个月开头输出对应的空td 获取指定的年月1号对应是星期几? $week = date("w",strtotime("$year-$m-1")); $html .="<tr>"; for($i=1;$i<=$week;$i++){ $html.= "<td></td>"; } // 根据年月获取对应的这个月的总天数 $days= date("t",strtotime("$year-$m")); for($j=1;$j<=$days;$j++,$i++){ // 如果是7的倍数就该换行了 // 必须是当前这个月的当前这个日 if( $month == $m and $j == $d ){ $html.="<td class='active'>{$j}</td>"; }else{ $html.="<td>{$j}</td>"; } if($i%7==0){ $html.= "</tr>"; } } $html.= "</table>"; } $html .="</div>"; echo $html;
2024年03月17日
23 阅读
0 评论
0 点赞
2024-02-18
使用XMLHttpRequest对象封装自己的axios函数
function myAxios(config){ return new Promise((resolve,reject)=>{ const xhr = new XMLHttpRequest() // 1.判断有params选项,携带查询参数 if(config.params){ // 2.使用URLSearchParams转换,并携带到url上 const paramsObj = new URLSearchParams(config.params) const queryString = paramsObj.toString() // 把查询参数字符串拼接在url?后面 config.url += `?${queryString}` } xhr.open(config.method||'GET',config.url) xhr.addEventListener('loadend',()=>{ if(xhr.status >=200 && xhr.status < 300){ resolve(JSON.parse(xhr.response)) }else{ reject(new Error(xhr.response)) } }) xhr.send() }) } myAxios({ url:'https://api-hmugo-web.itheima.net/api/public/v1/goods/detail', params:{ goods_id:1 } }).then(result=>{ console.log(result); })
2024年02月18日
28 阅读
0 评论
0 点赞
2024-01-19
MySQL外键约束(FOREIGN KEY)
1. 外键概述MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。如果不是特别理解什么是主表,什么是从表 请查看下面2建表中的内容主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。1.1 CASCADE 级联操作ON DELETE CASCADE 删除时级联 ,删除主表 从表对应记录随之删除ON UPDATE CASCADE 修改时级联 , 修改主表 从表对应记录随之修改1.2 RESTRICT 严格模式ON DELETE RESTRICT 删除时严格 ,删除主表 从表对应记录存在则主表不允许删除ON UPDATE RESTRICT 修改时严格 , 修改主表 从表有对应记录则主表不允许修改1.3 常规操作ON DELETE RESTRICT 删除时严格 ,删除主表 从表对应记录存在则主表不允许删除ON UPDATE CASCADE 修改时级联 , 修改主表 从表对应记录随之修改1.4 定义外键时,需要遵守下列规则:主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。必须为主表定义主键。主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。外键中列的数目必须和主表的主键中列的数目相同。外键中列的数据类型必须和主表主键中对应列的数据类型相同。2. 建表一张专业表,一张学生表,如下图所示专业表为主表(父表)学生表为从表(子表),学生表的mid为外键关联专业表的id从以上截图大家不难看出,想要实现外键约束必须要求这两张表的引擎为 innodb2.1 使用sql语句建表时设置表引擎为innodb create table major( id int primary key auto_increment, major_name varchar(20) )engine=innodb;2.2 使用navicat for mysql建表时候设置表引擎为innodb3. SQL添加外键3.1 在创建表时设置外键约束CREATE TABLE student( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25), mid INT(11), CONSTRAINT f1 FOREIGN KEY(mid) REFERENCES major(id) ON DELETE CASCADE ON UPDATE CASCADE )ENGINE=INNODB3.2 表创建成功后添加外键约束ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>); ALTER TABLE student ADD CONSTRAINT f1 FOREIGN KEY(mid) REFERENCES major (id) ON DELETE RESTRICT ON UPDATE CASCADE;4. Navicat for MySQL 添加外键5. 删除外键5.1 sql命令删除ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>; ALTER TABLE student DROP FOREIGN KEY f1;5.2 Navicat for MySQL 删除外键
2024年01月19日
143 阅读
2 评论
2 点赞
2024-01-19
MySQL数据库备份的几种方式
1.data文件备份 文件恢复备份成功后在另一台计算机上重新创建数据库,把备份文件复制到数据库所在文件夹里即可2.mysqldump备份 mysql恢复mysqldump是MySQL数据库的一个命令行工具,用于备份MySQL数据库。它允许你将数据库的结构和数据导出到一个SQL脚本文件,以便在需要时可以重新导入到MySQL服务器中。以下是mysqldump命令的基本语法: mysqldump [options] [database(s)]常用的选项包括:-u, --user=username:连接MySQL服务器的用户名。-p, --password[=password]:连接MySQL服务器的密码。如果没有指定密码,mysqldump会提示你输入密码。-h, --host=hostname:连接MySQL服务器的主机名。-P, --port=port:连接MySQL服务器的端口号。-B, --databases:指定要备份的数据库列表,多个数据库之间用空格分隔。-t, --tables:指定要备份的表列表,多个表之间用逗号分隔。-r, --result-file=file:指定输出文件的路径和名称。2.1 备份整个数据库mysqldump -u username -p password(建议为空) --databases database_name > backup.sql(文件路径)2.2 备份多个数据库mysqldump -u username -p password(建议为空) --databases database1 database2 > backup.sq2.3 备份特定表mysqldump -u username -p password(建议为空) --tables database_name table1 table2 > backup.sql2.4 恢复数据库mysql -u root -p database_name < backup.sql3.navicat for mysql备份 恢复3.1 备份3.2 恢复4.DataGrip备份 恢复4.1 备份5.2 恢复
2024年01月19日
56 阅读
0 评论
1 点赞
2024-01-19
最新Navicat 15 for MySQL破解+教程 正确破解步骤
百度网盘地址:https://pan.baidu.com/s/1ZFDPNo4C2i2cD0SQDBYzzw提取码: 2gw6第一步: 安装软件,注意安装到的目录之前没有存留有Navicat。第二步:切记安装完成之后不要打开软件!切记安装完成之后不要打开软件!切记安装完成之后不要打开软件!第三步:将压缩包中的注册机拖到Navicat 15的安装目录下。第四步:注册机配置1.Products选择“MySQL”2.Porducts这里选择”Mysql“3.Languages选择“Simplified Chinese” 如果你下载的Navica15是因为版的话这就选择“English”4.最后点击Pacth,这时候需要选择你的Navica15.exe,或者等待一到俩分钟它会弹出一个弹窗为止。或者第五步:打开Navicat 15.x for MySQL软件,进行注册。第六步:点击注册机上的Generate生成许可证秘钥,如果未显示绿色对号,而是显示红叉,说明你的Products或者Languages选择错误,或者保留有之前注册的密钥未删除,需要到注册表中删除它。(找到 HKEY_CURRENT_USER\Software\PremiumSoft 这个路径下的 Navicat 的相关注册表,删除它。可以点这里查看帮助)第七步:点击“激活”按钮,进行激活;然后点击“手动激活”;然后点击“Generate”,生成激活码,然后将激活码复制到框中点击激活按钮激活即可第八步:激活成功后,进入软件查看帮助 —> 关于信息
2024年01月19日
278 阅读
0 评论
2 点赞
2024-01-16
使用MySQL配置文件重置密码
1. 停止mysql服务器2. 在windows/Linux系统中,编辑MySQL配置文件:在Windows系统中,找到MySQL的安装目录,编辑my.ini文件。通常位于C:\Program Files\MySQL\MySQL Server X.X\my.ini(其中X.X表示版本号)3. 在[mysqld]部分添加以下行:skip-grant-tables4. 保存并退出编辑器。5. 启动mysql服务器6. 连接数据库,此时数据库没有密码,可以直接使用以下命令来连接mysql -uroot7. 重置root用户密码。在MySQL命令行中执行以下命令:FLUSH PRIVILEGES;8. 重置密码ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' -- 123456 是新密码9. 退出命令行,并删掉掉原来my.ini中添加那行命令skip-grant-tables,并重启mysql服务器,使用新密码登录10. 重新登录
2024年01月16日
42 阅读
0 评论
0 点赞
2023-12-19
04-创建自己的第一个model
1.修改mysql的配置信息 settings.py 编辑DATABASES 默认sqlite3改成修改mysql2.cmd 命令行安装mysqlclient 命令:pip install mysqlclient3.打开blog项目里面的models.py 创建自己的model类 Article为表名 继承models.Model4.完成数据迁移 python manage.py makemigrations app名称(可选 不写默认所有应用)5.继续执行python manage.py migrate 来创建表6.最终会在migrations 里生成0001_initial.py 看到字段结构7.命令python manage.py sqlmigrate blog 0001 查看建表语句8.查看数据表 已经创建成功9.手动写入一条记录,读取,模板中展示
2023年12月19日
83 阅读
0 评论
0 点赞
2023-12-19
03-开发第一个Templates
1.在自己的blog应用中创建templates 目录,在里面创建本应用名称的目录(blog)创建模板文件index.html2.指定可以访问模板的配置在views.py文件内 修改返回值 render() 第一个参数request,第二个参数调用模板路径,第三个参数,字典形式传输数据,模板中直接{{}} 输出
2023年12月19日
22 阅读
0 评论
0 点赞
2023-12-19
02-Django创建第一个项目
第一种方式来访问第一个页面(不常用)1.blog/views.pyfrom django.http import HttpResponse def index(request): return HttpResponse('hello world')2.myblog/urls.pyimport blog.views as bv urlpatterns = [ path('admin/', admin.site.urls), path('index/', bv.index), path('zhang/', bv.zhang), ]3.直接url访问第二种方式来访问第一个页面(常用)1.在blog/views.pyfrom django.http import HttpResponse def index(request): return HttpResponse('你好,世界')2.myblog/urlsfrom django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls')), *index主目录* ]3.在blog/里创建urls.pyfrom django.urls import path from . import views urlpatterns = [ path('/index, views.index),*index子目录* ]4.访问127.0.0.1:8000/blog
2023年12月19日
36 阅读
0 评论
0 点赞
1
2
3
4
...
8