用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 ...
随机推荐
- 设计Twitter的api
355. Design Twitter 题意:设计Twitter的API,实现以下功能. postTweet(userId, tweetId): Compose a new tweet. getNew ...
- 自己的php框架
spl_autoload_register('imooc::load');当我们new的类不存在,将触发括号里的方法. is_file()判断文件是否存在.
- 过滤器 一 Filter
import javax.servlet.Filter; 前言 过滤器是一个程序,依赖与servlet容器,它先于与之相关的servlet或JSP页面运行在服务器上.过滤器可附加到一个或多个servl ...
- kafka集群安装和使用
kafka(1)kafka是一个分布式的消息缓存系统(2)kafka集群中的服务器都叫做broker(3)kafka有两类客户端,一个叫做producer(消息生产者),一类叫做consumer(消息 ...
- 用pytorch进行CIFAR-10数据集分类
CIFAR-10.(Canadian Institute for Advanced Research)是由 Alex Krizhevsky.Vinod Nair 与 Geoffrey Hinton 收 ...
- NX二次开发-UFUN圆弧矩阵标记、起始角和结束角(弧度测量)、圆弧中心坐标和圆弧半径UF_CURVE_ask_arc_data(边可以用)
1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_modl.h> 6 #i ...
- Java Heap and Stack
Heap(堆)(FIFO): heap是一个运行时数据区, 类的对象从中分配空间.这些对象通过new.newarray.anewarray和multianewarray等指令建立,它们不需要程序代码来 ...
- c++ 实现元组 重载cout os 输出
#include <iostream> #include <string> using namespace std; class CAnyType //: public COb ...
- 2019 牛客多校第一场 C Euclidean Distance ?
题目链接:https://ac.nowcoder.com/acm/contest/881/C 题目大意 给定 m 和 n 个整数 ai,$-m \leq a_i \leq m$,求$\sum\limi ...
- [Java]读取文件方法大全(转载)
1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图 ...