知识点:
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端口的程序,会导致端口占用,服务器废了,如何换端口?
2)如何在不修改服务器前提下,还可以支持其他框架?
init接收端口,绑定不能写死,改为port
http服务器做成通用的
好处:可以随意调用哪个模块下的哪个函数
那么就在运行时,把它指定,像以下
然后得把它取出来
明明使用以下只有一行方法更简单,为什么要使用上面的方法?
因为这样可以随便调某个模块下的某个函数,主要是为了解耦,但还是解耦不够彻底(有2处):
1. 服务器必须上这个目录下找静态资源,如果没有就废了
2. 得上dynamic下找import导入的 mini_frame模块,如果换一个目录就不好使了
如此,就要使用配置文件来解决
三、支持配置文件
一般配置文件以.conf结尾
在conf里,{}字典格式的字符串类型,在python里,{}是字典类型
这样才算真正的解耦了,配置路径——>在.conf配置文件里配置
但还有一个小问题,每次运行都要执行以下长串代码,过于繁杂
如此,就要使用shell脚本来解决
四、shell-readme(下载Git)
Windows直接执行
run.sh
Linux
$ ./run.sh
没反应,查一下权限
$ ls -lh
没有-x表示不能执行,修改权限
$ chmod +x run.sh
$ ls -lh
$ ./run.sh