精华内容
下载资源
问答
  • AngularJS进阶(四十)创建模块、服务

    万次阅读 2016-06-15 21:11:24
    AngularJS进阶(四十)创建模块、服务学习要点 使用模块构架应用 创建和使用服务 为什么要使用和创建服务与模块? 服务允许你打包可重用的功能,使之能在此应用中使用。 模块允许你打包可重用的功能,使之能跨应用使用...

    AngularJS进阶(四十)创建模块、服务

    学习要点

         使用模块构架应用

         创建和使用服务

         为什么要使用和创建服务与模块?

              服务允许你打包可重用的功能,使之能在此应用中使用。

              模块允许你打包可重用的功能,使之能跨应用使用。

    一、应用程序模块化

         先看看一个没有模块化的程序

     

    <!DOCTYPE>
    <!-- use module -->
    <html ng-app="exampleApp">
    <head>
        <title>Angluar test</title>
        <meta charset="utf-8"/>
        <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css">
    </head>
    <body ng-controller="defaultCtrl">
        <div class="well">
            <!-- 使用自定义指令 -->
            <div class="btn-group" tri-button counter="data.totalClicks">
                <!-- 遍历按钮 -->
                <button class="btn btn-default" ng-repeat="city in data.cities">
                    {{city}}
                </button>
            </div>
            <h5>Total Clicks: {{data.totalClicks}}</h5>
        </div>
    <script type="text/javascript" src="js/angular.min.js"></script>
    <script type="text/javascript">
     
    angular.module("exampleApp", [])
        .controller("defaultCtrl", function ($scope) {
            // 数据模型
            $scope.data = {
                // 城市
                cities : ["London", "New York", "Paris"],
                // 点击总数
                totalClicks : 0
            };
            // 添加监听器,当点击总数发生变化时触发工厂函数
            $scope.$watch("data.totalClicks", function (newVal) {
                console.log("Total click count: " + newVal);
            });
        })
        // 定义指令
        .directive("triButton", function () {
            return {
                // 隔离作用域
                // 双向数据绑定
                scope : {
                    counter : "=counter"
                },
                // 链式函数
                link : function (scope, element, attrs) {
                    // 点击事件监听,打印日记,计算累加
                    element.on("click", function (e) {
                        console.log("Button click: " + e.target.innerText);
                        scope.$apply(function () {
                            scope.counter++;
                        })
                    });
                }
            }
        })
    </script>
    </body>
    </html>

     

         单击城市按钮,递增点击总数

     

         接下来,我们将指令分离,使之模块化,我们命名为triButtonDirective.js

     

    angular.module("triButtonDir", [])
        .directive("triButton", function () {
            return {
                // 隔离作用域
                // 双向数据绑定
                scope : {
                    counter : "=counter"
                },
                // 链式函数
                link : function (scope, element, attrs) {
                    // 点击事件监听,打印日记,计算累加
                    element.on("click", function (e) {
                        console.log("Button click: " + e.target.innerText);
                        scope.$apply(function () {
                            scope.counter++;
                        })
                    });
                }
            }
        })

     

         接下来,引用定义的标签并且使用它

     

    <!-- 引入指令文件 -->
    <script type="text/javascript" src="js/triButtonDirective.js"></script>
    <script type="text/javascript">
    // 使用指令
    angular.module("exampleApp", ["triButtonDir"])

     

    二、创建使用服务

    1.使用Factory方法

         第一步:将服务模块化,这里创建一个名为triButtonFactory.js的文件

     

    angular.module("triButtonFactory", [])
        .factory("logService", function () {
            var messageCount = 0;
            return {
                log : function (msg) {
                    console.log("(Log + " + messageCount++ + ") " + msg);
                }
            }
        })

     

         第二步:在视图中引入该服务

     

    <script type="text/javascript" src="js/triButtonFactory.js"></script>

     

         第三步:在控制器中使用它

     

    // 参数依赖注入
    angular.module("exampleApp", ["triButtonDirective", "triButtonFactory"])
        // 作为参数传人控制器中
        .controller("defaultCtrl", function ($scope, logService) {
            // 数据模型
            $scope.data = {
                // 城市
                cities : ["London", "New York", "Paris"],
                // 点击总数
                totalClicks : 0
            };
            // 添加监听器,当点击总数发生变化时触发工厂函数
            $scope.$watch("data.totalClicks", function (newVal) {
                // console.log("Total click count: " + newVal);
                // 使用自定义服务
                logService.log("Total click count: " + newVal);
            });
        })
    <img data-cke-saved-src="https://img-blog.csdn.net/20160615210752345?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" src="https://img-blog.csdn.net/20160615210752345?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    
    

     

    2.使用Service方法

         第一步:创建构造函数,然后创建服务。我们命名为triButtonService.js

     

    var baseLogger = function () {
        this.messageCount = 0;
        this.log = function (msg) {
            console.log(this.msgType + ": " + (this.messageCount++) + " " + msg);
        }
    }
    var debugLogger = function () {};
    debugLogger.prototype = new baseLogger();
    debugLogger.prototype.msgType = "Debug";
    var errorLogger = function () {};
    errorLogger.prototype = new baseLogger();
    errorLogger.prototype.msgType = "Error";
    angular.module("triButtonService", [])
        .service("logService", debugLogger)

     

         第二步:引入triButtonService.js文件,然后使用服务

     

    <!DOCTYPE>
    <!-- use module -->
    <html ng-app="exampleApp">
    <head>
        <title>Angluar test</title>
        <meta charset="utf-8"/>
        <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css">
    </head>
    <body ng-controller="defaultCtrl">
        <div class="well">
            <!-- 使用自定义指令 -->
            <div class="btn-group" tri-button counter="data.totalClicks">
                <!-- 遍历按钮 -->
                <button class="btn btn-default" ng-repeat="city in data.cities">
                    {{city}}
                </button>
            </div>
            <h5>Total Clicks: {{data.totalClicks}}</h5>
        </div>
    <script type="text/javascript" src="js/angular.min.js"></script>
    <!-- 引入指令文件 -->
    <script type="text/javascript" src="js/triButtonDirective.js"></script>
    <script type="text/javascript" src="js/triButtonService.js"></script>
    <script type="text/javascript">
    // 使用指令
    angular.module("exampleApp", ["triButtonDirective", "triButtonService"])
        .controller("defaultCtrl", function ($scope, logService) {
            // 数据模型
            $scope.data = {
                // 城市
                cities : ["London", "New York", "Paris"],
                // 点击总数
                totalClicks : 0
            };
            // 添加监听器,当点击总数发生变化时触发工厂函数
            $scope.$watch("data.totalClicks", function (newVal) {
                // console.log("Total click count: " + newVal);
                // 使用自定义服务
                logService.log("Total click count: " + newVal);
            });
        })
     </script>
    </body>
    </html>
    <img data-cke-saved-src="https://img-blog.csdn.net/20160615210907926?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" src="https://img-blog.csdn.net/20160615210907926?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    
    

     

    3.使用Provider方法

         第一步:使用Provider,创建服务。我们命名为triButtonProvider.js

     

    angular.module("triButtonProvider", [])
        .provider("logService", function () {
            var counter = true;
            var debug = true;
            return {
                messageCounterEnabled : function (setting) {
                    if (angular.isDefined(setting)) {
                        counter = setting;
                        return this;
                    } else {
                        return counter;
                    }
                },
                debugEnabled : function (setting) {
                    if (angular.isDefined(setting)) {
                        debug = setting;
                        return this;
                    } else {
                        return debug;
                    }
                },
                // 用于返回服务对象
                $get : function () {
                    return {
                        messageCount : 0,
                        log : function (msg) {
                            if (debug) {
                                console.log("(LOG" + (counter ? " + " + this.messageCount++ + ") " : ") " + msg));
                            }
                        }
                    }
                }
            }
        })

     

         第二步:引入、配置和使用服务

     

    <!DOCTYPE>
    <!-- use module -->
    <html ng-app="exampleApp">
    <head>
        <title>Angluar test</title>
        <meta charset="utf-8"/>
        <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css">
    </head>
    <body ng-controller="defaultCtrl">
        <div class="well">
            <!-- 使用自定义指令 -->
            <div class="btn-group" tri-button counter="data.totalClicks">
                <!-- 遍历按钮 -->
                <button class="btn btn-default" ng-repeat="city in data.cities">
                    {{city}}
                </button>
            </div>
            <h5>Total Clicks: {{data.totalClicks}}</h5>
        </div>
    <script type="text/javascript" src="js/angular.min.js"></script>
    <!-- 引入指令文件 -->
    <script type="text/javascript" src="js/triButtonDirective.js"></script>
    <script type="text/javascript" src="js/triButtonProvider.js"></script>
    <script type="text/javascript">
    // 使用指令
    angular.module("exampleApp", ["triButtonDirective", "triButtonProvider"])
        // 使提供强对象适用于依赖注入,服务器 + Provider = logServiceProvider
        .config(function (logServiceProvider) {
            logServiceProvider.debugEnabled(true).messageCounterEnabled(false);
        })
        .controller("defaultCtrl", function ($scope, logService) {
            // 数据模型
            $scope.data = {
                // 城市
                cities : ["London", "New York", "Paris"],
                // 点击总数
                totalClicks : 0
            };
            // 添加监听器,当点击总数发生变化时触发工厂函数
            $scope.$watch("data.totalClicks", function (newVal) {
                // console.log("Total click count: " + newVal);
                // 使用自定义服务
                logService.log("Total click count: " + newVal);
            });
        })
    </script>
    </body>
    </html>

    美文美图

     

    展开全文
  • perl模块(创建模块,加载模块详解)

    千次阅读 2017-02-22 18:38:27
    创建模块 1 命名规则 2 创建传统模块 3 创建面向对象模块 4 模块的导出规则 5 版本检查加载模块 模块有两种类型:传统模块和面向对象模块。 传统模块定义子例程和变量,供调用者导入和使用。

    如何创建和加载perl模块,深入理解perl模块

    加载模块

    模块有两种类型:传统模块面向对象模块
    传统模块定义子例程和变量,供调用者导入和使用。
    面向对象模块相当于类定义,可以通过方法调用来访问。

    通过如下命令加载模块:

    1.1 编译阶段加载模块使用use

        use MODULE;

    等价于:

        BEGIN {
            require MODULE;
            MODULE->import();
        }

    有些模块在其导入列表中提供了额外的功能,这个列表将成为import的参数表。

        use MODULE LIST;

    相当于:

        BEGIN {
            require MODULE;
            MODULE->import(LIST);
        }

    use查询模块的过程

    • 加载模块发生在编译阶段,所以模块中的所有代码都在编译阶段运行。
    • use::转换为/,以MODULE为文件名在末尾追加.pm
    • @INC中查找这个组合成的模块文件。
    • 一旦加载,被找到的文件路径会存入%INC,之后可以重用。
    • 所以,对@INC的所有修改要在use之前发生,

    import的使用

    • import把符号(子例程和变量)放在当前命名空间中,从而使编译单元的其余部分可以访问这些符号。
    • 导入默认列表
        use File::Basename;
    • 导入指定符号
        use Hash::Util qw(lock_keys);
    • 不希望任何导入
        use MODULE ();
    • 使用一个模块的某个特定版本(或更新版本)
        use MODULE VERSION LIST;
        ## 正常情况下,任何大于或等于VERSION的版本都是可以的,不能指定版本或版本范围。
        ## 通常指定版本(或更新版本)是为了避免之前版本中的已知的问题。

    1.2 运行阶段加载模块使用require

    如果希望在运行阶段加载模块,即直到运行一个真正需要这个模块的子例程时才包含该模块,这种情况使用require

        require MODULE;

    require也可以直接加载文件,要使用正确的路径分隔符(导致问题:不可移植)

        require FILE;
        require 'Animal/Mammal/HoneyBadger.pm';

    1.3 使用no

    use反过来就是no。no调用unimport。语法和use一样

    no MODULE;
    no MODULE LIST;
    no MODULE VERSION;
    no MODULE VERSION LIST;

    no一般用于临时性的目的,比如短时间希望某些符号能够使用,或者短时间不需要某些特性。

    ## 先使用Moose模块建立对象,在package末尾取消Moose的导入
    package Person;
    use Moose;
    has "first_name" => (is => "rw", isa => "Str");
    has "last_name" => (is => "rw", isa => "Str");
    sub full_name {
    my $self = shift;
    $self–>first_name . " " . $self–>last_name
    }
    no Moose; # keywords are removed from the Person package

    or

    ## 使用符号引用的特性
    $a = "this is a";
    {
        no strict "refs";
        print ${"a"};
    }

    创建模块

    2.1 命名规则

    NOTE:

    • 一旦选择了一个模块名,就不能更换,毕竟不能让用户更新代码去更新模块名。
    • 模块名应当首字母大写。program才能使用全部小写的名字。

    2.2 创建传统模块

    package Proj_utils 1.001;           ##包名和版本
    
    require Exporter;                   ## 引入Exporter模块
    our @ISA = qw(Exporter);            ## 继承Exporter模块
    
    @EXPORT = qw(&getString &getMode);          ## 默认导出的模块
    @EXPORT_OK = qw($string $mode);             ## 可以根据请求导出的模块
    %EXPORT_TAGS = (                            ## 可以作为标签组导出的模块
            string => [qw($string &getString)],
            mode => [qw($mode &getMode)],
        );
    our $string = "this is a module";
    sub getString {
        return $string;
    }
    our $mode = "traditional mode";
    sub getMode {
        return $mode;
    }
    
    1;

    2.3 创建面向对象模块

    面向对象的模块规则比较简单,它与用户的通信不多,只要定义好一个对象就行。

    package Proj_utils 1.002;
    
    sub new {                   ## 定义一个对象
        my ($class, @args) = @_;
        my $self = {
            string => "this is a oo module",
            mode => "oo",
        };
        bless $self, $class;
    }
    
    sub getString {              ## 对象方法
        my $class = shift;
        $class->{string};
    }
    
    sub getMode {                ## 对象方法
        my $class = shift;
        $class->{mode};
    }
    
    1;

    2.4 模块的导出规则

    用use加载一个模块时,这个模块通常会提供一些变量或函数允许你的程序访问。
    这种从模块导出符号的行为(导入到程序),被称为polluting命名空间。
    大多数模块使用Exporter模块完成这个工作。

    
    package A;
    
    ## 大多数模块的开头(结合加载模块一节理解'import'函数的作用)
    require Exporter;                   ## 加载Exporter模块
    @ISA = qw (Exporter);               ## 继承Exporter,获取'import'方法
    ############或者这样的开头
    ####    use Exporter qw(import);    ## 获取'import'方法
    ####
    ############或者这样的开头
    ####    @ISA = qw(Exporter)                 ## 必须继承Exporter
    ####    sub import {                        ## 重写import
    ####        A->export_to_level(1, @_);      ## 使用export_to_level手动实现import功能
    ####    }
    ############################
    
    ######### 定义函数和变量
    sub func {}
    sub func_sm {}
    
    our @arr = qw(a b c);
    our $variable = "a variable";
    
    ###### 导出符号
    @EXPORT = qw(&func $variable);     ## 默认导出
    @EXPORT_OK = qw(@arr &func_sm);     ## 根据请求导出
    %EXPORT_TAGS = (                    ## 作为标签组导出
        var => [qw($variable @arr)],
        fun => [qw(&func &func_sm)],
    );
    
    1

    2.5 版本检查

    在模块中定义$VERSION变量来定义模块的版本,使用模块的程序就可以确保这个模块足够新。

    use Module 3.14;            ## 3.14或更新
    use Module v3.0.4;          ## 3.0.4或更新

    使用VERSION()查看模块的版本,此函数继承自UNIVERSAL。

    print Module->VERSION();

    在模块中定义版本

    package Module;
    our $VERSION = '1.0.1';

    或者

    package Module v1.0.1;
    展开全文
  • phpcms v9 创建模块

    千次阅读 2013-03-12 11:06:58
    2.创建模块目录  3.创建模块控制器类;  4.创建模块类与模块函数;(如果只是简单的模块可以不必创建)  5.创建模板文件;  6.运行和调试。 一、 2.创建模块目录:分析 phpcms v9框架中的模块,位于...

    一.创建一个模块开发流程:

    1.创建数据库和数据表;(没有数据库操作可略过) 
    2.创建模块目录 
    3.创建模块控制器类; 
    4.创建模块类与模块函数;(如果只是简单的模块可以不必创建) 
    5.创建模板文件; 
    6.运行和调试。

    一、

    2.创建模块目录:分析

    phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块
    如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。

    例如我要开发一个叫做test的模块,那么首先在 phpcms/modules 目录下创建文件夹,并将其命名为test。

    标准结构:
    classes   :模块类库包
    function  :模块函数库包
    templates:模块模版包 通常放置含权限控制的控制器模版,也就是后台模版


    如果您的模板有单独的前台模板,你需要在phpcms\templates\default下创建一个您的模块目录来放置前台模板,"default"为你的风格包名称,我们默认适用default


    一、
    3.创建模块控制器类:

    在创建模块中我们已经创建好了一个名为“test”的模块,接下来我们继续为这个模块添加两个控制器类。

    phpcms v9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面。类名成就是文件名+.php,例如一个名为mytest的控制器,那么他的命名为mytest.php即可。控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。


    控制器类文件包含两种形式:
    1.mytest.php 控制器,前台浏览(不含权限控制)

    <?php 
      defined('IN_PHPCMS') or exit('No permission resources.'); 
      class mytest { 
         function __construct() { 
        } 
        public function init() { 
         $var = 'hello world!'; 
         echo $myvar; 
         }

        public function mylist() { 
         $var = 'hello world!this is a example!'; 
         echo $myvar; 
         } 
      } 
    ?>

    这个控制器的url访问方法
    index.php?m=test&c=mytest 
    index.php?m=test&c=mytest&a=mylist
    没有填写 “a” 的情况下,默认调用init方法

     

    2.mytest_admin.php 控制器,后台管理(含权限控制)

    后台控制控制器需要加载admin模块下的admin类,并继承该类。需要注意的是因为你添加的控制器类继承了其他的类,你要小心你控制器的方法名不要和该类中的方法名一样了,否则会造成影响,具体请查看admin类中有哪些方法。

    <?php 
    defined('IN_PHPCMS') or exit('No permission resources.'); 
    pc_base::load_app_class('admin','admin',0); 
    class mytest_admin extends admin { 
      public function __construct() { 
      } 
      public function init() { 
        $myvar = 'oh,i am phpcmser'; 
        echo $myvar; 
      } 

    ?>


    在控制器中增加模板调用

    phpcms 可以实现完全的模板与程序分离,所以在我们的控制器程序中要加载模板,才可以更友好的显示出来。

    1.加载前台模板

    前台模板文件在phpcms\templates\default\模块名称 目录中,本示例也就在phpcms\templates\default\test中

    加载模板方法如下:

     include template('test', 'mytest', 'default');

    其中 test为模块名称 mytest 为模板目录下模板名称,default为风格名称,默认不填为defalut

    在上面例子中如果要给mytest.php中init方法加载一个mytest的模板,如下

     

      public function init() { 
         $var = 'hello world!'; 
         include template('test', 'mytest', 'default'); 
       }


    这样我们通过url访问该方法的时候也就加载了对应的模板。


    2.加载后台模板

    后台模板文件在phpcms\modules\模块名称\templates 目录中,本示例也就在phpcms\modules\test\templates 中

    加载模板方法如下:

    include $this->admin_tpl('mytest_admin_list');


    其中mytest_admin_list为phpcms\modules\test\templates中mytest_admin_list.tpl.php,注意:此处模板必须以.tpl.php 作为后缀

    在上面例子中如果要给mytest_admin.php中init方法加载一个mytest_admin_list的模板,如下
     

     public function init() { 
        $myvar = 'oh,i am phpcmser'; 
        include $this->admin_tpl('mytest_admin_list'); 
      }

     


    二:创建数据库模型类:

    数据库模型位于:phpcms/model/ 目录下。

    数据模型文件的命名规则建议为数据表名称+'_model.class.php'

    如果在我们的创建的模块中我要使用一个数据库“test”,首先需要建立一个数据库模型文件,文件名称为'test_model.class.php'

    内容如下:

    <?php
      defined('IN_PHPCMS') or exit('No permission resources.');
      pc_base::load_sys_class('model', '', 0);
      class test_model extends model {
        public function __construct() {
        $this->db_config = pc_base::load_config('database');
        $this->db_setting = 'default';
        $this->table_name = 'test';
        parent::__construct();
      }
     }
    ?>

    注意:
    1.数据库模型类名称必须与文件名称相同;
    2.$this->db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。
    3.$this->table_name = 'test'为数据表名称

    这样我们就建立好了一个数据库模型类。
    在模块的控制器中使用
    $this->db = pc_base::load_model('test_model');

    来加载。
    具体如下
    <?php
      defined('IN_PHPCMS') or exit('No permission resources.');
      class mytest {
        private $db;
         function __construct() {
          $this->db = pc_base::load_model('test_model');
        }
        public function init() {
          $result = $this->db->select();
          var_dump($result);
         }
      }
    ?>

    其中$this->db中所支持的方法请参照phpcms/libs/classes/model.class.php中方法

    展开全文
  • TP5.1快速创建模块

    千次阅读 2019-01-15 13:49:58
    快速生成模块 生成一个test模块的指令如下: &gt;php think build --module test 表示自动生成test模块,自动生成的模块目录包含了config、controller、model和view目录以及common.php公共文件。   批量...

    快速生成模块

    生成一个test模块的指令如下:

    >php think build --module test
    

    表示自动生成test模块,自动生成的模块目录包含了configcontrollermodelview目录以及common.php公共文件。

     

    批量生成模块

    如果需要批量生成多个模块的目录和文件,需要定义规则文件build.php并放入应用目录(application)下面。

    return [
        // 定义demo模块的自动生成
        'demo'   => [
            '__file__'   => ['tags.php', 'user.php', 'hello.php'],
            '__dir__'    => ['config', 'controller', 'model', 'view'],
            'controller' => ['Index', 'Test', 'UserType'],
            'model'      => [],
            'view'       => ['index/index'],
        ],    
        
        // 定义test模块的自动生成
        'test'=>[
            '__dir__'   =>  ['config','controller','model','widget'],
            'controller'=>  ['Index','Test','UserType'],
            'model'     =>   ['User','UserType'],
            'view'      =>  ['index/index','index/test'],
        ],
     ];
    

    定义好生成规则文件后,我们在命令行下面输入命令:

    >php think build
    

    如果看到输出

    Successed
    

    则表示自动生成成功。

    展开全文
  • YII2 学习笔记 --- 创建模块 Module

    千次阅读 2017-05-01 12:29:01
    1、运行GII 创建模块,指定模块ID和模块启动文件 2、在APPLICATION中的 配置文件中增加 module下标,值为数组 'modules' => [ '模块ID' => [ 'class' => '模块启动文件', ], ], 这个数组在哪里需要...
  • Yii2 - 应用结构 - 创建模块Modules

    千次阅读 2015-05-29 17:21:12
    模块是独立的软件单元,由模型, 视图, 控制器和其他支持组件组成, 终端用户可以访问...创建模块 模块被组织成一个称为[[yii\base\Module::basePath|base path]]的目录, 在该目录中有子目录如controllers, models, v
  • Python创建模块并导入

    千次阅读 2017-08-30 09:24:04
    Python创建自己的模块很方便,所有的.py文件都被视为是一个模块 我们可以用import 文件名的方式把它导入自己的新文件 不过我们要注意创建模块要符合命名规范,比如首字母不能是数字等 如果首字母是数字就会出现...
  • Python 3基础教程20-创建模块

    千次阅读 2017-05-06 18:04:40
    本文介绍Python中模块创建,通过创建一个自定义模块,然后在其他模块导入我们创建模块,去实现一些功能。简单来说,Python中任何一个.py文件都是一个模块。 我们创建一个maxNumber.py文件,具体代码如下 def ...
  • dojo(一):创建模块

    千次阅读 2013-10-09 21:04:43
    加载器实际上就是一些js代码,他们处理定义和加载模块的后台逻辑。当你加载了dojo.js或者require.js,你就获得了一个 AMD加载器。加载器定义了一些和require、define全局函数合作的函数。  全局函数define允许你向...
  • idea创建项目模块和怎样导入模块. ... ... 现在你可以在project处创建你项目的名字,在project处添加你的项目存放位置,然后点击Finish你的项目就创建成功了. 现在我们创建模块,如果你的项目创建成功了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,316,569
精华内容 526,627
关键字:

如何创建模块