zoukankan      html  css  js  c++  java
  • 学习python课程第十七天

     一. 目录规范.

    1. 文件夹的规范写法:

      bin  (可执行文件)

      conf  (配置文件)

      core  (主要业务逻辑)

      db     (数据文件)

      lib      (库,(公共代码  第三方模块))

      log      (日志文件)

      readme   (说明文档. 也是一个文件)

      在以上文件夹中 没有需要作为包的, 你的包通常放到 lib中, 但是注意 lib不应该作为包

        疑惑?

         这个文件夹到底应该是包还是文件夹, 其实问题就是需要不需要用到 init

         init的作用就是导入包内模块中的全部功能

         通过判断是不是需要这个功能来判断是包还是文件夹

    2.定制程序的入口:

      # 总结 程序的入口 主要是将项目的根目录添加到环境变量中.

    3.分文件夹之后的模块使用

    start.py (执行文件)

    import sys,os
    # sys.path.append(r"D:上海python全栈4期day19")
    # __file__ 得到的是当前文件的完整路径
    print(__file__)
    # dirname 得到一个路径的所在目录
    print(os.path.dirname(__file__))
    # 我们要的是day19 所以再取一次
    print(os.path.dirname(os.path.dirname(__file__)))
    # 项目的根目录
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))

    # 将得到的结果 添加到环境变量中
    sys.path.append(BASE_DIR)

    # 导入ATM
    import core.ATM
    # 执行启动函数
    core.ATM.run()



    settings.py文件 (里面存着一些变量,或工具)

    DB_PATH = r"D:上海python全栈4期day19db高根db.txt"
    LOG_PATH = r"D:上海python全栈4期day19loglog.txt"


    DB_URL = "127.0.0.1"
    USER = "root"
    PWD = "123"




    ATM.py (主要的业务逻辑)

    from conf.settings import *
    from lib.common import *
    def login():
    print("登录")
    name = "xx"
    pwd = "xx"
    with open(DB_PATH,encoding="utf-8") as f:
    print(f.read())
    logger("%s登录成功" % name)

    def register():
    print("注册")
    with open(DB_PATH, encoding="utf-8") as f:
    print(f.read())

    def shopping():
    print("购物")
    if not login_auth():
    return
    with open(DB_PATH, encoding="utf-8") as f:
    print(f.read())


    def run():
    print("欢迎使用!")
    while True:
    print("""1.登录
    2.注册
    3.购物""")
    s = input("请选择:")
    if s == "1":
    login()
    elif s == "2":
    register()
    elif s == "3":
    shopping()
    else:
    print("输入错误!")
    run()

    common.py( 主要存储第三方模块.或公共代码)from conf.settings importdef login_auth():

        print("登录验证")

    def logger(msg):
    with open(LOG_PATH,"at",encoding="utf-8") as f:
    f.write(msg+" ")



    二. 常用的内置模块:

    1. time

    import time
    #与时间相关的一个模块

    #时间的三类:
    # 1.时间戳 从1970年的一月一日 8:0:0 开始到现在的秒数
      print(time.time())
      t = time.time
      time.sleep(10)
      #让程序睡上10秒
      t2 = time.time
      print(t2-t)
      #现在减去刚才的时间



    #2.结构化时间
      print(time.localtime()) #返回一个对象,其中包含一个元组 里面是每个时间的值 (东八区.北京时间)

      print(time.localtime().tm_year (#年)) #单独获取某个时间属性

      print(time.gmtime()) # 世界统一时间. 比北京时间晚了八个小时



    #3.格式化的字符串时间

      print(time.strftime('%Y-%m-%D %H:%M:%S %p(上午时间)'))

      print(time.strftime('%Y-%m-%D %X(代表时分秒) %p'))


    #4.三种格式之间的互相转换

      #时间戳转为结构化
      print(time.localtime(time.time()))

      #结构化转字符串
      print(time.strftime('%Y-%m-%d',time.localtime(time.time())))

      #字符串转为结构化
      print(time.strftime('2018-10-15','%Y-%m-%d'))

      #结构化转时间戳
      print(time.mktime(time.strftime('2018-10-15','%Y-%m-%d')))

      #
    了解. 格林威治时间
      print(time.asctime(time.localtime(60*60*24)))
      print(time.ctime(60*60*24))



    2. datetime

    import datetime

      #这个是一个包 里面包含 对时间的处理. 对日期的处理
      datetime.date #日期相关
      
      datetime.time #时间相关


      # 获取当前详细时间
      print(datetime.datetime.now())

      
      # 获取时间的某一部分
      print(datetime.datetime.now().hour)


      #替换时间的某一部分
      ti = datetime.datetime.now()
      t1 = t1.replace(year=2019)
      print(t1)


      #
    了解 时间差对象
      tal = datetime.datetime(weeks=1)
      
      t1 = datetime.datetime.now()
      
      print(t1 + tal)










  • 相关阅读:
    终于和Java碰面了
    Servlet学习-MVC开发模式
    Servlet学习-数据库的操作
    Servlet学习-sendRedirect()和forward()
    Servlet学习-request
    Servlet学习-乱码解决方案
    Servlet学习-response
    Servlet学习-页面设置不缓存
    软件构造 第一章第二节 软件开发的质量属性
    软件构造 第二章 第一节 软件生命周期和版本控制
  • 原文地址:https://www.cnblogs.com/lvyipin1/p/9791868.html
Copyright © 2011-2022 走看看