PyCharm项目文件介绍
  • 首页
  • 关于致胜
  • 网站开发
  • 软件/小程序案例
  • 致胜软件
  • 服务器租用
  • 合作客户
  • 致胜优势
  • 技术博客
  • 视频中心
  • PyCharm项目文件介绍>

    init.py 是一个空文件,表示当前目录news可以当作一个python包使用。
    tests.py 文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不需要我们来
    做。
    models.py 文件跟数据库操作相关。
    views.py 文件跟接收浏览器请求,进行处理,返回页面相关。
    admin.py 文件跟网站的后台管理相关。
    migrations 数据库迁移文件。



    3.1 settings介绍
    django项目创建后,在主应用中,会有一个settings.py文件,这个就是该项目的配置文件


    settings文件包含Django安装的所有配置
    settings文件是一个包含模块级变量的python模块,所以该模块本身必须符合python规则,并且可以使用python的语法
    settings中的所有配置项的key必须全部大写
    settings中每一个配置项都有默认值,默认配置内容在django/conf/global_settings.py中可以查看到,项目中不需要导入该模块,django框架会自动获取
    settings中可以添加自定义的配置项
    ————————————————


                                版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
    原文链接:https://blog.csdn.net/weixin_46264660/article/details/141087465


    对于一个python项目,里面的每一个文件夹都可以认为是一个package,而每一个.py文件被认为是一个module。如果你用的IDE是PyCharm,

    那么当你新建一个Python Package的时候,PyCharm都会自动为你新建一个__init__.py文件。这个__init__.py文件可以看作这个package的初始化文件,

    具体用途且看下文。


    __init__.py文件在做什么

    这说明__init__.py中的代码被执行了。如果把demo.py中的 import package 换成import package.module也是一样的结果。这说明,

    当我们从一个package里面调用东西的时候,该__init__.py文件内的代码会被首先执行。


    __init__.py文件有什么用?

    3.1 简化import语法
    假设在module.py文件中有一个函数a_function()如下

    # module.py
    def a_function():
        print("Test function is called!")


    如果我现在想从demo.py中调用它,没有__init__.py文件的话,只能这么写(方法一)

    # __init__.py
    from package.module import a_function


    但是我可以在__init__.py中进行如下定义
    # demo.py
    from package import a_function

    a_function()

    好像也没简洁到哪儿去?试想,如果你在package里面有几十个module,那么当你想调用这几十个module里面的几十上百个函数的时候,

    你就需要在demo.py文件中写几十行import语句,这样无疑是不简洁的。而采用方法二的办法,你就可以把这些import语句统统放进__init__.py文件。

    但这不是__init__.py最重要的用途,最重要的是下面两点。


    3.2 批量导入和规范化导入以及__all__

    如果你在module.py中定义了很多函数,你想在demo.py中调用,怎么办呢?如module.py中有两个函数

    # module.py


    def a_function_1():
        print("Test function 1 is called!")


    def a_function_2():
        print("Test function 2 is called!")

    先在__init__.py批量导入

    from package.module import *

    再在demo.py中批量导入

    # demo.py

    from package import *

    a_function_1()

    更优雅一点可以调用__all__属性,在__init__.py中定义可以被外界调用的类和方法,如

    # __init__.py

    __all__ = ['a_function_1']     # 这样,在demo.py只能调用a_function_1方法

    from package.module import *

    这里举的例子都是函数/方法,对于类来说,是一样的。

  • 回顶部
技术支持:致胜网络
  • 首页

  • 一键拨号

  • 网站开发

  • 软件开发