python博客园_python简单模拟博客园系统

# 用代码模拟博客园系统

#

# 项目分析:

# 1.首先程序启动,显示下面内容供用户选择:

#

# 1.请登录

# 2.请注册

# 3.进入文章页面

# 4.进入评论页面

# 5.进入日记页面

# 6.进入收藏页面

# 7.注销账号

# 8.退出整个程序

# 2.必须实现的功能:

#

# 1.注册功能要求:

# a.用户名、密码要记录在文件中。

# b.用户名要求:不能有特殊字符并且确保用户名唯一。

# c.密码要求:长度要在6~14个字符之间。

#

# 2.登录功能要求:

# a.用户输入用户名、密码进行登录验证。

# b.登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,提示用户进行登录!

# c.超过三次登录还未成功,则退出整个程序。

#

# 3.进入文章页面要求:

# 提示欢迎xx进入文章页面。(xx是当前登录的用户名)

#

# 4.进入评论页面要求:

#

# ​ 提示欢迎xx进入评论页面

#

# 5.进入日记页面要求:

# 提示欢迎xx进入日记页面。

#

# 6.进入收藏页面要求:

# 提示欢迎xx进入收藏页面。

#

# 7.注销账号要求:

# 不是退出整个程序,而是将已经登录的状态变成未登录状态(在次访问3~7选项时需要重新登录)

#

# 8.退出整个程序要求:

# 就是结束整个程序

import hashlib

login_dic = {

'status': False

}

s1 =" " #全局变量

def wrapper(func):

def inner(*args, **kwargs):

if login_dic['status'] == True:

ret = func(*args, **kwargs)

return ret

else:

login(*args, **kwargs)

func(*args, **kwargs)

return inner

def yonghuming(): #用户名验证函数

while True:

username = input("username:")

for i in username:

if not i.isalnum():

print("No")

break

else:

return username

def mima(): # 密码验证函数

while True:

pwd = input("pwd:")

for i in pwd:

if 6 <= len(pwd) <= 14:

print("ok")

return pwd

else:

print("重新输入密码")

def zhuce(*args, **kwargs):

s2 = yonghuming() #调用用户名验证

s3 =mima() #调用密码验证

md5 = hashlib.md5() # 初始加密模板

md5.update(s3.encode('utf-8'))

m = md5.hexdigest()

with open('flag', 'a+', encoding="utf-8") as f:

f.seek(0)

f.write(f"{s2}:{m}\n")

print("注册成功")

def login(*args, **kwargs):

for i in range(3):

username1 = input("username:")

pwd1 = input("pwd:")

md5 = hashlib.md5() # 初始化加密模板

md5.update(pwd1.encode('utf-8'))

m1 = md5.hexdigest()

with open('flag', 'r', encoding='utf-8') as f1:

for i in f1:

username, pwd = i.strip().split(":")

if username == username1 and m1 == pwd:

login_dic['status'] = True

print("登录成功")

global s1

s1 =username #修改全局变量

return s1

else:

print("用户名密码错误")

else:

print("输错3次咯!!")

@wrapper

def blog_wz(s1):

if login_dic['status']:

print(f"欢迎{s1}进入文章页面")

@wrapper

def blog_pl(s1):

if login_dic['status']:

print(f"欢迎{s1}进入评论页面")

@wrapper

def blog_rz(s1):

if login_dic['status']:

print(f"欢迎{s1}进入日志页面")

@wrapper

def blog_sc(s1):

if login_dic['status']:

print(f"欢迎{s1}进入收藏页面")

@wrapper

def blog_zx(s1):

if login_dic['status']:

login_dic['status'] = False

print("注销账号")

msg = """

1, 注册

2,登录

3,进入文章页面

4,进入评论页面

5,进入日志页面

6,进入收藏页面

7,注销账号

8.退出

"""

dic1 = {

'1': zhuce,

'2': login,

'3': blog_wz,

'4': blog_pl,

'5': blog_rz,

'6': blog_sc,

'7': blog_zx,

'8': exit

}

def run():

while True:

my_str = input(msg)

if my_str in dic1:

if my_str =='8':

return

dic1[my_str](s1)

else:

print("输入错误序号")

if __name__ == '__main__':

run()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值