用pymysql实现的注册登录公告练习
import pymysql
#1.连接服务器
conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='123456',
database='公告'
)
#2.通过连接拿到游标对象
#默认的游标返回的是元祖类型,不方便使用,需要更换字典类型的游标
c=conn.cursor(pymysql.cursors.DictCursor)
is_login=[None]
def login_auth(func):
def wrapper(*args, **kwargs):
while not is_login[0]:
print('请先登录')
login(c,conn)
res=func(*args,**kwargs)
return res
return wrapper
#用户注册
def register(c,conn):
while True:
print('欢迎来到注册')
#输入用户信息
username=input('输入你的用户名:')
pwd=input('输入你的密码:')
#3.执行sql
sql='select * from user where username=%s'
if c.execute(sql,(username,)):
print('用户名已存在,请重新输入!')
continue
else:
sql2='insert into user(username,pwd) values(%s,%s)'
if c.execute(sql2,(username,pwd)):
print('注册成功!')
conn.commit()
break
else:
print('注册失败')
continue
#用户登录
def login(c,conn):
global is_login
if is_login[0]:
print('已经登录了不用再登录')
return
while True:
print('欢迎来到登录')
#输入用户信息
username=input('输入你的用户名:')
pwd=input('输入你的密码:')
sql='select * from user where username=%s and pwd=%s'
rec=c.execute(sql,(username,pwd))
if c.fetchall():
print('登录成功')
conn.commit()
is_login[0]=1
break
else:
print('账号密码错误')
#发布公告
@login_auth
def post_notice(c,conn):
print('欢迎来到发布公告')
notice_titile=input('请输入你要发布的公告标题:')
notice_content= input('请输入你要发布的公告内容:')
#执行sql
sql='insert into notice(titile,content) values(%s,%s)'
c.execute(sql,(notice_titile,notice_content))
print('公告发布成功')
conn.commit()
#查看公告
@login_auth
def show_notice(c,conn):
print('欢迎来到查看公告')
sql='select * from notice'
c.execute(sql)
print(c.fetchall())
conn.commit()
func_list={
1:register,
2:login,
3:post_notice,
4:show_notice
}
func_list_view='''
1:register,
2:login,
3:post_notice,
4:show_notice
5:quit
'''
while True:
print(func_list_view)
choice=input('请选择功能:')
if choice=='5':
break
else:
choice=int(choice)
func_list[choice](c,conn)
用pymysql实现的注册登录公告练习的更多相关文章
- 连接数据库+注册->登录->抽奖(有关联关系的接口)
注册账号信息需要写入数据库,登录和抽奖时从数据库获取数据 一.连接数据库 my_sql.py: import pymysql class MyDb: def __init__(self,host,pa ...
- 使用ajax 做注册登录示例,
需求:使用AJAX 做一个注册登录示例, 如用户名已存在, 在填写用户名时给与提示. 1:首先创建一个新的django项目.做好配置 在settings.py文件里做好数据库配置: 1. 告诉Djan ...
- 一步步开发自己的博客 .NET版(3、注册登录功能)
前言 这次开发的博客主要功能或特点: 第一:可以兼容各终端,特别是手机端. 第二:到时会用到大量html5,炫啊. 第三:导入博客园的精华文章,并做分类.(不要封我) 第四:做 ...
- Android开发案例 - 注册登录
本文只涉及UI方面的内容, 如果您是希望了解非UI方面的访客, 请跳过此文. 在微博, 微信等App的注册登录过程中有这样的交互场景(如下图): 打开登录界面 在登录界面中, 点击注册, 跳转到注册界 ...
- 如何设计一个 App 的注册登录流程?
移 动设备发力之前的登录方式很简单:用户名/邮箱+密码+确认密码,所有的用户登录注册都是围绕着邮箱来做.随着移动设备和社交网络的普及,邮箱不再是唯 一,渐渐的出现了微博,QQ,微信等第三方登录方式,手 ...
- Discuz! X2.5判断会员登录状态及外部调用注册登录框
Discuz! X2.5判断会员登录状态及外部调用注册登录框 有关discuz论坛会员信息,收集的一些资料: 用dedecms+discuz做了个门户加论坛形式的网站,但是dedecms顶部目前只能q ...
- 解决stackoverflow打开慢不能注册登录
http://blog.csdn.net/dream_an/article/details/50280977 解决stackoverflow打开慢不能注册登录 标签: stack overflowfi ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- 原生js验证简洁美观注册登录页面
序 一个以js验证表单的简洁的注册登录页面,不多说直接上图 效果 主要文件 完整代码 sign_up.html 注册表单 <!DOCTYPE html> <html lang=&qu ...
随机推荐
- Python 分解质因数
def zys(n, value=[]): for i in range(2, int(n / 2 + 1)): if n % i == 0: value.append(i) zys(n / i, v ...
- quartz的使用(一)
1.quartz是什么? Quartz 是一个完全由 Java 编写的开源作业调度框架,支持各种灵活的应用方式,并同时支持分布式和集群能力.2.quartz的基本要素 2.quartz的基本要素 Sc ...
- 【JZOJ3294】【BZOJ4417】【luoguP3990】超级跳马
description analysis 矩阵乘法好题 最朴素的\(10pts\)的\(f[i][j]\)容易\(DP\),但是是\(O(nm^2)\)的复杂度 于是把\(10\)分的\(DP\)写出 ...
- JUC 一 ReentrantLock 可重入锁
java.util.concurrent.locks ReentrantLock即可重入锁,实现了Lock和Serializable接口 ReentrantLock和synchronized都是可重入 ...
- Delphi流
一.流的概念 流简单说是建立在面向对象基础上的一种抽象的处理数据的工具,它定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员只需掌握对流进行操作,而不用关心流的另一头数据的真正流向.其实 ...
- bzoj1096题解
[解题思路] 预处理spi=∑pj(j∈[1,i]),si=si-1+(xi-xi-1)*spi-1表示把工厂1~i-1的产品都运到工厂i的花费.于是把工厂j+1~i的产品都运到工厂i的花费为si-s ...
- 几道51nod上据说是提高组难度的dp题
1409 加强版贪吃蛇 听着懵逼做着傻逼. 每个格子只能经过一次,穿过上下界答案清0,不考虑穿的话就随便dp.如果要穿就是从尽可能上面的位置穿过上界,尽可能下面的位置穿过下界. 那么转移这一列之前找一 ...
- mysql在win系统dos 安装版配置步骤详解
1.准备工作 下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip,解压缩到相关目录,如:d:\ mysql-noinstall-5.1.53-win32.这 ...
- csp-s模拟测试93
csp-s模拟测试93 自闭场. $T1$想到$CDQ$,因为复杂度少看见一个$0$打了半年还用了$sort$直接废掉,$T2$,$T3$直接自闭暴力分都没有.考场太慌了,心态不好. 02:07:34 ...
- CodeForces-1234C-Pipes-dfs
You are given a system of pipes. It consists of two rows, each row consists of nn pipes. The top lef ...