1 navicat自己玩一玩

2 练习题一定要搞懂 照着我的思路一遍遍的看敲

3 熟悉pymysql的使用

4 sql注入产生的原因和解决方法 了解

5 思考:如何结合mysql实现用户的注册和登录功能?

import pymysql

#链接数据库
conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='123456',
db='day48',
charset='utf8'
)
#获取游标
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) #注册功能
def register():
while True:
user=input('your name:').strip()
pwd=input('your pwd>>:').strip()
re_pwd=input('your pwd>>:').strip()
if pwd == re_pwd:
sql='insert into userinfo values(%s,%s);'
rows=cursor.execute(sql,(user,pwd))
# 提交
conn.commit()
#验证是否注册成功
sql = 'select * from userinfo where name = %s and pwd =%s;'
rows = cursor.execute(sql, (user, pwd))
if rows:
print('注册成功')
break
else:
print('注册失败')
# 关闭游标
cursor.close() # 关闭连接
conn.close()
else:
print('两次密码输入不一致') #登录功能
def login():
while True:
user=input('your name>>:').strip()
pwd=input('your pwd>>:').strip()
sql='select * from userinfo where name = %s and pwd =%s;'
rows=cursor.execute(sql,(user,pwd))
if rows:
print('登录成功')
break
else:
print('登录失败')
# 关闭游标
cursor.close() # 关闭连接
conn.close() func_dic={
'1':register,
'2':login,
} def run():
while True:
print('''
1 注册
2 登录
''')
choice=input('>>:').strip()
if choice == 'q':
break
elif choice not in func_dic:
print('没有该编号')
continue
func_dic.get(choice)() run()

day48 work的更多相关文章

  1. day48——css样式

    day48 通过调试窗口还可以玩一个神奇的东西 document.body.contentEditable=true css样式 高度宽度 width宽度 height高度 块级标签能设置高度宽度,内 ...

  2. day48 navicat使用及pymysql的使用

    目录 一.navicat介绍 1 基本使用 2 练习题 2.1 查询所有的课程的名称以及对应的任课老师姓名 2.2 查询平均成绩大于八十分的同学的姓名和平均成绩 2.3 查询没有报李平老师课的学生姓名 ...

  3. day48 前端高级选择器优先级

    复习 1. 基础选择器 标签选择器(div) | 类选择器(.div1) | id选择器(#div2) <div class="div1" id="div2&quo ...

  4. Python:Day48 Jquery

    引用方式: <script src="jquery-3.3.1.js"></script> jQuery就是一个jQuery对象,可以简写成$ 基本语法:$ ...

  5. python 全栈开发,Day48(标准文档流,块级元素和行内元素,浮动,margin的用法,文本属性和字体属性)

    昨日内容回顾 高级选择器: 后代选择 : div p 子代选择器 : div>p 并集选择器: div,p 交集选择器: div.active 属性选择器: [属性~='属性值'] 伪类选择器 ...

  6. HTML day48

    前端知识之HTML内容   HTML介绍 Web服务本质 import socket#引入套接字模块 sk = socket.socket()#实例化一个套接字对象 sk.bind(("12 ...

  7. day48

    flex布局 响应式布局 过度 动画 flex布局 学习目的:基于之前所学的盒模型布局(display).浮动布局(float).定位布局(position),都不能很好的解决block垂直居中的问题 ...

  8. js实现回放拖拽轨迹-------Day48

    今天有点小高兴,csdn博客浏览量过万了,在过去还从来没有过这么高的浏览量呢.不得不说.太多时候还是有些矫情.可看到这些鼓舞还是忍不住高兴啊,至少,这样让我有一种行内人员的感觉,吾道不孤啊. 闲话不多 ...

  9. MySQL之 视图,触发器,事物,存储过程,函数(Day48)

    阅读目录 一.视图 二.触发器 三.事物 四.存储过程 五.函数 六.流程控制 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名 ...

随机推荐

  1. Python快速入门文档

    前言 此文本质为本人学习Python过程中的笔记,部分地方叙述表达可能不够清晰,欢迎留言. (本文适合有一定程序语言基础的读者阅读(最好是c语言)) 一.基本语法 1.框架: (1)以缩进表示层次所属 ...

  2. vue cli3 创建的项目中eslint 配置 问题的解决

    1--   vue cli3 项目文件结构 2-- 注释问题 在eslintrc.js 文件中,将 '@vue/standard' 注释后重启即可: 3-- 配置 eslint 文件 在 vue-cl ...

  3. [go设计模式]工厂方法模式

    简单工厂就是生产整个计算器,而工厂方法只生产计算器的一部分: 原有的简单工厂可以生'+' '-' '*' '/' ;但是如果添加新的部件'%',厂房就 需要扩充.修改很可以会影响原来部件的正常生产,这 ...

  4. 给女朋友讲解什么是Git

    前言 在周六发现了Linus去Google演讲的一个视频,当时还发了一条朋友圈: 有兴趣的同学也可以去看看,一点儿也不无聊,在线看Linus大佬怼人 https://www.bilibili.com/ ...

  5. 数据源管理 | Kafka集群环境搭建,消息存储机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.Kafka集群环境 1.环境版本 版本:kafka2.11,zookeeper3.4 注意:这里zookeeper3.4也是基于集群模式部 ...

  6. ubuntu18.04安装qt时候的错误解决

    在ubuntu系统下安装好qt5.5后启动qtceator时提示: Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库Qt5 ...

  7. @codeforces - 607E@ Cross Sum

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 n 条直线,构造可重点集合 I 为 n 条直线两两的交点集 ...

  8. python+selenium上传本地文件

    迅雷号自媒体视频文件自动上传,贴标签发布 难点 本地文件上传,通过send_keys(‘文件路径’)的方式实现上传的目的 文件名通过正则匹配的方式进行处理,主要匹配出中文标题名称 处理过程中文件名称中 ...

  9. Dubbo笔记(一)

    一.简介 在编写分布式场景下高并发.高扩展的系统对技能的要求很高,因为这个过程会涉及到序列化/反序列化.多线程.网络编程.设计模式.性能优化等众多专业知识.而Dubbo框架对这些专业知识做了更高层的抽 ...

  10. Jupyter notebook中的Cell and Line Magics

    参考资料: https://www.jianshu.com/p/81ada9234788 https://my.oschina.net/u/2306127/blog/832510 首先,Cell an ...