'''个人博客开发登录菜单注册菜单首页菜单查看所有文章查看个人文章查看文章详情登录注册发表文章用户users = dict()ul = {'username':'admin','password':123,'nickname':'小刘'}文章articles = dict('标题:a1)a1 = {'title':'标题','content':'内容','author':u1,'read_count':0}
'''
#引入依赖的模块
import os,sys,time#定义函数
def show_login():'''登录菜单'''print("\t\t个人博客用户登录")print("* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~")print("\t\t1. 用户登录")print("\t\t2. 用户注册")print("\t\t3. 退出系统")print("* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~")#用户做出选择choice = input("请输入您的选项:")return login_menu_dict.get(choice)() if choice in login_menu_dict else show_login()def show_register():'''注册菜单'''print("\t\t用户注册")print("* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~")print("     欢迎来到个人博客注册界面")print("     请按照提示信息,录入个人资料,完善个人信息")print("* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~")time.sleep(1)#用户开始注册return register()def show_index():'''首页菜单'''print("\t\t个人博客首页")print("* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~")print("1. 查看所有文章")print("2. 查看个人文章")print("3. 发表文章")print("4. 个人信息维护")print("5. 返回上一级")print("6. 退出系统")print("* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~* ~ * ~ * ~")#用户输入选项choice = input("请输入您的选项:")return index_menu_dict.get(choice)() if choice in index_menu_dict else show_index()def look_articles():'''查看所有文章'''#循环查看所有文章的标题print("标题\t\t作者")for title_key in articles.keys():# if articles.get('author').get('username') == online.get('username'):print(title_key,"\t\t",articles.get(title_key).get('author').get('username'))# else:#     print(title_key,"\t\t",online.get('username'))title = input("请输入您要查看的文章标题(R键返回首页):")if title.upper() == "R":return show_index()else:#判断用户输入的标题是否存在,并展示文章if title in articles:look_article_detail(title)else:print("没有这篇文章")time.sleep(1)return look_articles()def look_article_self():'''查看个人文章'''print("标题\t\t作者")for title_key in articles.keys():if articles.get(title_key).get('author').get('username') == online.get('username'):print(title_key, "\t\t", articles.get(title_key).get('author').get('username'))# else:#     print(title_key, "\t\t", online.get('username'))title = input("请输入您要查看的文章标题(R键返回首页):")if title.upper() == "R":return show_index()else:# 判断用户输入的标题是否存在,并展示文章if title in articles:look_article_detail(title)else:print("没有这篇文章")time.sleep(1)return look_articles()def look_article_detail(title):'''查看文章详情'''#获取文章article = articles.get(title)#更改阅读次数rc = articles.get('read_count')rc +=1article['read_count'] = rc#展示文章print("文章标题:{}".format(article.get('title')))print("文章作者:{}".format(article.get('author').get('username')))print("阅读次数:{}".format(article.get('read_count')))print("文章内容:{}".format(article.ger('content')))input("按任意键返回首页")return show_index()def login():'''登录函数'''username = input("请输入账号:")password = input("请输入密码:")#验证账号密码是否正确if username in users and password == users.get(username).get('password'):#登录成功,进入首页#记录在线登录账号global onlineonline = users.get(username)return show_index()else:print("账号或密码错误,请重新输入")time.sleep(1)return login()def register():'''注册函数'''username = input("请输入注册账号:")if username in users:print("账号已存在,请重新注册")time.sleep(1)return register()password = input("请输入注册密码:")confirm = input("请确定注册密码")if password != confirm:print("两次密码输入不一致,请重新注册")time.sleep(1)return register()#创建用户信息,注册user = {'usename':username,'password':password,'nickname':'未完善'}users[username] = userreturn show_login()def article_publish():'''发表文章函数'''#用户输入发表文章的标题,内容title = input("请输入标题:")if title in articles:print("您输入的标题已存在,请输入其它标题")time.sleep(1)return article_publish()#用户输入内容content = input("请输入文章内容:")#创建文章article = {'title':title,'content':content,'author':online,'read_count':0}#将文章添加到系统中articles[title] = articleprint("文章发布中...")time.sleep(1)print("文章发布成功")#跳转首页return show_index()def userinfo_perfect():'''个人信息维护'''passdef exit_system():'''退出系统'''for i in range(0,3):print("系统将在{}秒后退出".format(3-i))time.sleep(1)sys.exit(1)#用户数据
users = dict()
#文章数据
articles = dict()
#创建变量,记录在线登录的用户
online = None#定义选项和函数的关系
login_menu_dict = {'1': login,'2': show_register,'3': exit_system,
}
index_menu_dict = {'1': look_articles,'2': look_article_self,'3': article_publish,'4': userinfo_perfect,'5': show_login,'6': exit_system,
}def engine():'''初始化引擎:展示登录菜单'''show_login()engine()

《06》个人博客不完整版相关推荐

  1. 用hexo中的matery主题搭建个人博客(完整版)

    1.初始化搭建: 使用 gitee | github + hexo 快速搭建 hexo-theme-matery 闪烁之狐主题の个人博客_扶摇而上者九万里的博客-CSDN博客 注意:gitee搭建需要 ...

  2. 9篇小白都能懂系列博客学完MySQL基础

    博主经过三天的时间整理终于把MySOL基础部分内容总结成了这九篇博客,如果博主漏写了重点的基础部分的内容,或者说博主写的地方有错误还请CSDN的兄弟们提醒(这一点就比较重要了),由于博主的时间比较有限 ...

  3. AVFoundation Programming Guide(官方文档翻译)完整版中英对照

    新博客: 完整版 - AVFoundation Programming Guide 分章节版: – 第1章:About AVFoundation - AVFoundation概述 – 第2章:Usin ...

  4. Hexo主题之livemylife个性化构建你的博客

    本篇博客已首发在个人博客 [快乐码原] :Hexo主题之livemylife个性化构建你的博客 欢迎各位客官来康康~ tips:部分图片加载异常,可以到我的个人博客浏览完整版. 简介 livemyli ...

  5. 5分钟 搭建免费个人博客

    五分钟倒数已经可以计时了. 三步完成免费个人博客搭建, 这是一篇小白也能看懂的文章,本文主要针对mac OS ,Windows 除了软件安装方式和命令有些区别(装了git bash也一样),其他基本一 ...

  6. 听我说说我的博客: 月访问量过万的个人IT博客的技术史

    过去曾经写过一系列的文章,试图去鼓励更多的人去写文章.从毕业前的<成为笔杆子>.<[写作驱动学习 ](https://www.phodal.com/blog/write-driven ...

  7. 豪横!程序员搭个人博客,一个 GitHub 账号足矣!

    ????加星标,不迷路哦! 作为程序员拥有一个属于自己的个人技术博客,绝对是百利无一害的事,不仅方便出门装b,面试时亮出博客地址也会让面试官对你的好感度倍增.经常能在很多大佬的技术文章的文末,看到这样 ...

  8. 计算机技术博客博客知乎,我的技术博客的选择:CSDN、博客园、简书、知乎专栏仍是Github Page?...

    有不少技术人员在学习到必定程度后发现了写博客的重要性,一方面帮助本身记忆,一方面也能帮助他人解决问题,因而会选择本身开始写博客,以后又发现平台太多不知从何下手,在这里我根据本身写博客的经验比较一下各个 ...

  9. 糅合Markdown和语法高亮,快速写作技术博客

    之前博客在javaeye,不知道触犯了老大哪根神经,不声不响就给封了,现在来到CSDN,又正好赶上改版,好好的博客写完后格式乱七八糟.国内的其他博客商也都好不到哪里去,不知道什么时候就被封,算了,自己 ...

最新文章

  1. java android下载文件_Android 下载文件(jsp做的服务器上)下载下来和源文件大小不一...
  2. 5G中网络切片技术是什么?—Vecloud
  3. ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练(模型保存+可视化)实现二分类预测
  4. JAVA爬虫https_java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题
  5. swift5以上版本的代理的实现,详细教你书写代理
  6. LeetCode之Valid Parentheses
  7. Edmonds_Karp 算法 (转)
  8. Spring整合Mybatis之关联查询示例
  9. 华为Y9 Prime 2019曝光:无刘海无水滴全面屏+升降前摄
  10. Silverlight实例教程 - Validation数据验证基础属性和事件
  11. [POJ2195]Going Home(带权最大匹配,KM,最小费用流)
  12. C#Json数据交互
  13. [操作系统] FAT文件系统概述
  14. 要有遥不可及的梦想,也要有脚踏实地的本事
  15. SSL2668 2017年8月7日提高组T1 根(dfs)
  16. 如何寻找适合的投稿SCI期刊
  17. Flask SQLAlchemy 操作数据库已有数据表
  18. MySQL - 为什么使用B+树做索引结构
  19. 【已解决】Java “错误:编码GBK 的不可映射字符”
  20. c语言编程斐波那契前n项,c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)...

热门文章

  1. 名帖269 董其昌 行书临《颜真卿裴将军诗卷》
  2. css实现立体感按钮
  3. 什么是静态测试?什么是动态测试?
  4. 证件照在家就能拍,2分钟完成
  5. 工作日记---android lockscreen.java 在lock状态下显示charing和alarm
  6. 华为产品升级及打补丁具体步骤
  7. 易于设置的倒计时页面Easy countdown
  8. 德蕾莎修女---一个伟大的人
  9. 初等代数(2):不等式、数列与简单级数、阶乘、排列组合、二项式与多项式
  10. 群晖NAS Git Server项目源代码管理 配置搭建