当前位置: 首页 > news >正文

蚌埠企业网站建设寄生虫seo教程

蚌埠企业网站建设,寄生虫seo教程,蜜桃汇免费的wordpress账号,网站开发有什么day012 用python实现信息卡管理及购物商城的项目 需求 #需求: 1 这是一个信用卡管理程序 2 用户手持信用卡购物#xff0c;使用函数#xff0c;按照软件开发规范 3 用户名密码存放于文件中#xff0c;支持多用户登陆#xff0c;使用json 4 程序启动#xff0c;先登录或者…day012 用python实现信息卡管理及购物商城的项目   需求 #需求: 1 这是一个信用卡管理程序 2 用户手持信用卡购物使用函数按照软件开发规范 3 用户名密码存放于文件中支持多用户登陆使用json 4 程序启动先登录或者注册保存信息到文件中记录日志 5 用户的登陆密码输错三次锁定不能再登录 6 用户可以取现消费还款提额 7 允许用户根据商品编号购买商品用户选择商品检测余额够用扣款不够用提示用户行为都要记录日志 8 用户可以随时退出退出时打印已购买商品和余额 借鉴了老师在day011中的代码框架添加了部分代码。   项目的结构如下。   项目的目录结构如下。   项目的运行结果展示   待改进的地方 1.  未做到单点登录2.  日志的信息不够详细3.  项目的健壮性输入校验等等有待提高 代码如下。 #/bin/start.py import sys,os BASE_DIRos.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR)from core import srcif __name__ __main__:src.run()#/conf/setting.pyimport osBASE_DIRos.path.dirname(os.path.dirname(os.path.abspath(__file__))) DB_PATHos.path.join(BASE_DIR,db,db.json) LOG_PATHos.path.join(BASE_DIR,log,access.log) LOGIN_TIMEOUT3 logging配置# 定义三种日志输出格式 standard_format [%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d] \[%(levelname)s][%(message)s] #其中name为getlogger指定的名字 simple_format [%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s id_simple_format [%(levelname)s][%(asctime)s] %(message)s# log配置字典 LOGGING_DIC {version: 1,disable_existing_loggers: False,formatters: {standard: {format: standard_format},simple: {format: simple_format},},filters: {},handlers: {#打印到终端的日志console: {level: DEBUG,class: logging.StreamHandler, # 打印到屏幕formatter: simple},#打印到文件的日志,收集info及以上的日志default: {level: DEBUG,class: logging.handlers.RotatingFileHandler, # 保存到文件formatter: standard,filename: LOG_PATH, # 日志文件maxBytes: 1024*1024*5, # 日志大小 5MbackupCount: 5,encoding: utf-8, # 日志文件的编码再也不用担心中文log乱码了},},loggers: {#logging.getLogger(__name__)拿到的logger配置: {handlers: [default, console], # 这里把上面定义的两个handler都加上即log数据既写入文件又打印到屏幕level: DEBUG,propagate: True, # 向上更高level的logger传递},}, }#/core/src.pyfrom conf import settings from lib import common import timeloggercommon.get_logger(__name__)current_user{user:None,login_time:None,timeout:int(settings.LOGIN_TIMEOUT)}def auth(func):def wrapper(*args,**kwargs):if current_user[user]:intervaltime.time()-current_user[login_time]if interval current_user[timeout]:return func(*args,**kwargs)name input(name: )dbcommon.conn_db()if db.get(name): #已注册用户的登录流程if db.get(name).get(locked):logger.warning(该用户已被锁定)print (该用户已被锁定)else:logging_error_times 0while True:if logging_error_times 3:logger.warning(密码输入错误3次该用户已被)db[name][locked] 1common.save_db(db)breakpassword input(password:)if password db.get(name).get(password):logger.info(登录成功)print(登录成功)current_user[user] namecurrent_user[login_time] time.time()return func(*args, **kwargs)else:logger.warning(密码错误)logging_error_times 1else: #注册is_register input(是否注册 Y/N)if is_register in [Y,y]:password input(password)db[name] {password:password, money:0, locked:0}logger.info(登录成功)print(登录成功)current_user[user] namecurrent_user[login_time] time.time()common.save_db(db)return func(*args, **kwargs)else:logger.info(用户不注册)return wrapperauth def buy():db common.conn_db()money db.get(current_user[user]).get(money)print (目前账户有%d元 %money)items_dict {item1:1, item2:2}print (items_dict.keys())items_bought_dic {}while True:item_buy input(buy whichQ退出?).strip()item_buy_split item_buy.split( )#print (item_buy_split[0], item_buy_split[1])if item_buy_split[0] in [q, Q]:db[current_user[user]][money] moneycommon.save_db(db)print(你买了,items_bought_dic)print(账户余额,money)breakelif item_buy_split[0] in items_dict:item, item_num item_buy_split[0], item_buy_split[1]item_price items_dict[item] * int(item_num)print(item,:,item_num,共花了%d%item_price)if item_price money:money - item_priceprint (购买成功还有%d元%money)if item in items_bought_dic:items_bought_dic[item] item_numelse:items_bought_dic[item] item_numelse:print (余额不足)else:print (请输入【商量名称】 【商品数量】)auth def withdraw():db common.conn_db()money db.get(current_user[user]).get(money)print (账户余额%d元 %money)withdraw_num int(input(取多少钱))if withdraw_num money:money - withdraw_numdb[current_user[user]][money] moneycommon.save_db(db)print (取现成功账户余额%d % money)else:print (账户余额不足)auth def repay():db common.conn_db()money db.get(current_user[user]).get(money)print(账户余额%d元 % money)repay_num int(input(还款数量 ))money repay_numdb[current_user[user]][money] moneycommon.save_db(db)print(还款成功你还有%d % (money))auth def run():print( 1. 取现 2. 还款 3. 消费 Q. 退出)while True:choice input(: ).strip()if not choice:continueif choice 1:withdraw()if choice 2:repay()if choice 3:buy()if choice in [Q,q]:quit()#/db/db.json {user1: {password: 111, money: 2705, locked: 0}, user2: {password: 111, money: 30000, locked: 0}, user3: {password: 111, money: 20000, locked: 0}, zjl: {password: 111, money: 0, locked: 0}}#/lib/common.pyfrom conf import settings import logging import logging.config import jsondef get_logger(name):logging.config.dictConfig(settings.LOGGING_DIC) # 导入上面定义的logging配置logger logging.getLogger(name) # 生成一个log实例return loggerdef conn_db():db_pathsettings.DB_PATHdicjson.load(open(db_path,r,encodingutf-8))return dicdef save_db(dic):db_path settings.DB_PATHjson.dump(dic, open(db_path, w, encodingutf-8))日志的截图  转载于:https://www.cnblogs.com/marathoner/p/10273662.html
http://www.pierceye.com/news/247478/

相关文章:

  • 网站怎么做数据接口wordpress主题知更
  • 注册网站登录企业网站建设论文模板
  • 营销型网站模板免费下载常用wordpress搭建环境
  • 浦东新区手机网站建设wordpress 视频页面
  • 做课件最好的素材网站网站背景动图怎么做
  • 做网站时已做好了ps怎么倒入深圳燃气公司地址
  • 做类似淘宝的网站要多少钱亚马逊网站建设进度计划书
  • 够完美网站建设怎么把视频弄成超链接
  • 苏州网站建设哪家更好四川省建设工程信息网官网二建注册
  • 潍坊网站关键词推广湖南餐饮网站建设
  • 珠海网站建设优化推广win2008 iis7发布网站
  • 平安网站建设发挥了积极的作用wordpress 的数据库路径
  • 福州网站建设优化安阳县二中录取分数线2022
  • 如何建手机网站网站能否做二维码
  • 南京网站建设 雷仁网上海网站制作网络推广方法
  • 营销型网站怎么做安阳县有多少个乡镇
  • 网站评论 设计天气网站建设
  • 潍坊市住房和城乡建设局网站哈尔滨最新发布公告
  • 白云网站 建设信科网络制作网站软件网站
  • 房产网站的建设想发布oa网站 需要备案吗
  • 帮别人做钓鱼网站吗海口网站建设过程
  • 广州php网站建设做网站的公司推荐
  • 百度一下建设银行网站首页网上购物都有哪些网站
  • 装饰公司营销型网站建设idc服务器租赁
  • 广告投放跟网站建设一样吗视频网站能备案吗
  • 哪些网站可以找到兼职做报表的学校网站建设价格明细表
  • 域名购买哪个网站好wordpress 转载插件
  • 网站百度提示风险网站开发 安全
  • 厦门网站建设建网站如何做一个网页项目
  • 锦州市网站建设腾讯企点怎么群发