python简单模拟博客园系统

Posted A改变自己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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} ")
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()

以上是关于python简单模拟博客园系统的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫:两种方法模拟登录博客园

百万年薪python之路 -- 第二周 --模拟博客园系统

python模拟登录博客园(附:问题求教)

python模拟博客园登录-基础版

模拟博客园系统

Python抓拍博客园文章,并存入数据库