mini-cw(CW-Charry)-给程序传参-支持配置文件-shell-readme

知识点:

1)除了import导入模块还可以用__init__调用函数的方法导入模块

2)用以下方式启动命令如何接收后面传的参数?

通过argv获取

一、mini-cw(CW-Charry)

mini-cw的文件分配:

1、dynamic(动态目录:动态的返回后台数据):写框架mini-frame.py

        ①    创建__init__文件为了兼容python2,dynamic变成一个包

2、templates:放模板(放以html结尾的目录)

3、static(静态目录):放css样式,img图片,fonts(字体),js等其他资源

解耦前后端分开 :

                                  1、前端放在static和templates里

                                  2、后端放在dynamic和web服务器里

                                  3、前后端互不影响里

"./templates/charry.html"(一个点/):用python3运行web_server.py文件,所有用open打开的文件路径都从web_server.py的路径开始算---当前路径下(一个点/)



二、给程序传参

指定运行某一模块:

-- eg:自己设一个7788的端口——>运行mini_frame这个指定的模块里的application函数

eg:python web_server.py 7788 mini_frame:application 

什么是给程序传参?

python+文件名+用7788绑定端口,用 mini_frame:application指定服务器加载某个框架里的某个函数去运行,这种写法叫给程序传参

以字符串形式传参:传任何数据都以字符串形式对待



1)同时跑两个7890端口的程序,会导致端口占用,服务器废了,如何换端口?

端口随便写
去web服务器导入,main方法运行程序  
实例化时把接收的端口port传进去
init接收端口,绑定不能写死,改为port  
启动程序时换什么端口都可以,只要端口没被占用,程序都能运行  



2)如何在不修改服务器前提下,还可以支持其他框架?

init接收端口,绑定不能写死,改为port

http服务器做成通用的

好处:可以随意调用哪个模块下的哪个函数

把这个固定的换成通用的,先把它注掉
这个就没用了,但为了遵循WGSI协议,这里必须得有这个模块

那么就在运行时,把它指定,像以下

mini_frame这里用自己的框架可以,用同学的也可以,得多传一个参数才可以
这里就不能只传两个参数,得再传一个参数


这里就得加上它

然后得把它取出来

拿到的目前是字符串
要用正则进行切割
import mini_frame
先注掉它
打印出来
说明这里打印成功了,再把注掉的放开
因为要用到,所以要传进去
在这里接收、放到self里方便使用  
在这里调用
成功了

明明使用以下只有一行方法更简单,为什么要使用上面的方法?

因为这样可以随便调某个模块下的某个函数,主要是为了解耦,但还是解耦不够彻底(有2处):

1.    服务器必须上这个目录下找静态资源,如果没有就废了

2.    得上dynamic下找import导入的 mini_frame模块,如果换一个目录就不好使了

如此,就要使用配置文件来解决



三、支持配置文件

一般配置文件以.conf结尾

在conf里,{}字典格式的字符串类型,在python里,{}是字典类型

在conf里,这是字典格式的字符串类型
读文件
因为要用到,所以要传进去  
接收
放到self里方便使用


在这里进行使用

这样才算真正的解耦了,配置路径——>在.conf配置文件里配置

但还有一个小问题,每次运行都要执行以下长串代码,过于繁杂

如此,就要使用shell脚本来解决



四、shell-readme(下载Git)

Windows直接执行

run.sh

Linux

$ ./run.sh

没反应,查一下权限

$ ls -lh

没有-x表示不能执行,修改权限

$ chmod +x run.sh

$ ls -lh

$ ./run.sh

如果怕自己忘了,可以建一个readme文件进行描述,这样,隔一段时间后可依据readme文件运行程序

你可能感兴趣的:(mini-cw(CW-Charry)-给程序传参-支持配置文件-shell-readme)