模拟博客园系统
Posted bpbl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟博客园系统相关的知识,希望对你有一定的参考价值。
1. 启动程序, 显?菜单列表
菜单:
1. 登录
2. 注册
3. ?章
4. ?记
5. 退出
2. ?户输入选项, ?章和?记必须在登录后才可以进?操作.(装饰器)
3. ?户注册, 将?户名和密码写入到register?件中. 同时?成"article_?户名"?件?于
存储?户?章. 同时?成"diary_?户名" 来存储?户的?记内容.
4. ?户登录成功后, ?户名和密码从register?件中读取内容. 并记录好当前登录的?户
名和登录状态.
5. 在?户进入?章菜单后. 提??户选择: 写?章, 读?章, 如果?户选择读?章. 把?户
所有的?章标题显?出来. 让?户选择要显?的?章标题. 显?出?章内容. 如果选择
写?章. 则让?户输入要写的?章标题和?章内容. 并存入该?户的?章?件中.
例如,
alex登录成功后.
他可以选择读?章和写?章.
读?章:
您的?章有:
1. 中东之?
2. wusir是怎样炼成的
请选择您要读的?章序号: 2
标题: wusir是怎样炼成的
内容: wusir这个?烧饼, 我们曾经在xxx地?的时候xxxxxxxx....
写?章:
请输入您要编写的?章标题: 太?在哪?
请输入您这篇?章的内容: 太??星昨??去找王?娘娘做头发了.
?章保存成功
此时系统读写的?件为article_alex?件. 如果是peiqi登录. 则操作的是
article_peiqi?件. 每个?户都会单独分配?个 "article_?户名" ?件.
5. 进入?记菜单后. 操作和?章类似. 差别是. ?记的标题就是当天的?期. 不需要?户
输入. 直接?成系统时间. 当然. 对于?记每个?户也会有??的单独的?件产?. 统
?命名为"diary_?户名"
‘‘‘
import time
login_name = ""
flag = False
def login_verify(fn):
def inner(*args, **kwargs):
while 1:
if flag == True:
ret = fn(*args, **kwargs)
return ret
else:
print("您还没有登录. 请登录!")
login()
return inner
def login():
print("=============欢迎进入登录环节================")
while 1:
uname = input(‘请输入你的用户名:‘)
upwd = input(‘请输入你的密码:‘)
f = open(‘register‘, mode="r", encoding="utf-8")
for line in f:
d = eval(line.strip())
if uname == d[‘username‘] and upwd == d["password"]:
global login_name
global flag
login_name = uname # 保存登录的用户名
flag = True
print("=============登录成功!!!!!================")
f.close()
return
else:
f.close() # 关文件
y = input("=============用户名或密码错误,是否重新登录(Y/N)!!!!!================")
if y.upper() != "Y":
return
def regist():
print(‘===========进入注册环节==============‘)
ff = True
while ff:
uname = input("请输入你的用户名:")
# 判断用户名是否重复
f = open("register", mode="r", encoding="utf-8")
for line in f:
# 字符串转化回字典
dd = eval(line.strip())
if uname == dd[‘username‘]:
print(‘用户名重复!!!!‘)
f.flush()
f.close()
break
else: # 用户名不存在. 可用
print("用户名可用. ")
ff = False
f.flush()
f.close()
upwd = input("请输入你的密码:")
d = {"username":uname, "password":upwd}
f = open("register", mode="a", encoding="utf-8")
f.write(str(d)+" ")
f.flush()
f.close()
# 创建存放文件和文章的文件
f1 = open("article_"+uname, mode="w", encoding="utf-8")
f2 = open("diary_"+uname, mode="w", encoding="utf-8")
f1.close()
f2.close()
print(‘===========注册成功!!!==============‘)
def read_article():
print("========读文章环节==============")
with open("article_"+login_name, mode="r", encoding="utf-8") as f:
count = 1
for line in f:
print(count, eval(line.strip())[‘title‘])
count += 1
while 1:
cc = input("请输入你要读的文章, 输入Q返回上一单元:") # 3
if cc.upper()==‘Q‘:
return
id = int(cc)
if id < 1 or id > count:
print(‘该文章不存在‘)
continue
else:
with open("article_" + login_name, mode="r", encoding="utf-8") as f:
for i in range(id):
line = f.readline()
# 此时读取的line就是第id行的数据
dd = eval(line.strip())
print(‘您选择的文章标题是: %s‘ % dd[‘title‘])
print("您选择的文章内容是:")
print(dd[‘content‘])
def write_article():
print("========写文章环节==============")
title = input(‘请输入你要写入的文章标题:‘)
content = input("请输入你要写入的文章的内容:")
d = {"title":title, "content": content}
with open("article_"+login_name, mode="a", encoding="utf-8") as f:
f.write(str(d)+" ")
print("========文章写入成功!!!!!==========")
def read_diary():
print("========读日记环节==============")
with open("diary_"+login_name, mode="r", encoding="utf-8") as f:
count = 1
for line in f:
print(count, eval