cuizong项目涉及知识点 -- ubuntu - python click模块 + setup.py的使用-多任务等

----------------python操作mysql三种方式:

https://www.jianshu.com/p/5dfe55c6cdb4   

详细例子:https://www.cnblogs.com/mryrs/p/6951008.html

1、pymysql

2、mysql-connector-python

3、sqlalchemy

 

 

----------------------------------------------click模块 贯穿cuizong项目

学习链接https://www.jb51.net/article/174005.htm

例子1 :python -m http.server 8000   执行后,在本机打开“ http://localhost:8000  ”,或者在局域网内的其它机器上打开“  http://本机ip:8000   ”,就能访问到执行目录下的内容,例如下图就是我本机的内容:

 

-----------------------------------------------------setup.py

setup.py可以将我们写的Python程序打包,发布到官网PyPi (Python Package Index)https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/113705998

共享您的Python软件包具体教程:https://blog.csdn.net/cunjie3951/article/details/106921409

setuptools是常用的打包工具。https://www.cnblogs.com/geeklove01/p/8280939.html

一个简单的setup.py文件如下:

 

from setuptools import setup, find_packages
setup(
    name = "my_demo",
    version = "0.1",
    packages = find_packages()
)

 

其中,name是包的名字,version是版本。

给packages指定find_packages(),意为包括在本目录下的所有Python包。

什么是Python包呢?在Python 3.2及更早版本中,只有包含__init__.py文件才能识别为Python包。

那要是不想包含某些包呢?给find_packages指定exclude参数即可。

那如果我们想将数据文件也添加进来呢?有以下方法(以下:package_data:数据文件,即一些txt或者dat文件 ):

方法一

在使用版本控制的情况下(先包含全部数据文件,再指定去除):

 

packages = find_packages('src'),  # 包含所有src目录下的package
    package_dir = {'':'src'},   

    include_package_data = True,    # 包含所有版本控制的内容

    # 排除所有 README.txt
    exclude_package_data = { '': ['README.txt'] }

 

方法二(直接指定包含哪些数据文件):

 

packages = find_packages('src'),  # 包含所有src中的包
    package_dir = {'':'src'},   # 告诉distutils包都在src下

    package_data = {
        # 如果包中含有.txt文件,则包含它
        '': ['*.txt'],
        # 包含demo包data文件夹中的 *.dat文件
        'demo': ['data/*.dat']
}

 

其他的一些常用参数:

zip_safe,指定boolean选项,控制项目能否直接通过压缩文件安全安装。

install_requires:安装依赖

entry_points: 创建控制台脚本 详情

等等

可以使用命令:

python setup.py bdist_egg

来创建egg文件,egg文件可以跨平台,便于使用pip安装。

也可以使用命令:

python setup.py sdist

来创建源发布版本,此后可通过pip install来安装生成的tar.gz包

其他一些setup.py文件的参数选项:
 python setup.py build     #编译
 python setup.py install    #安装
 python setup.py sdist      #制作分发包
 python setup.py bdist_wininst    #制作windows下的分发包
 python setup.py bdist_rpm

 

参考:

https://setuptools.readthedocs.io/en/latest/setuptools.html

--------------------------------------进程线程协程

最近在做两个事情

1  linux定时脚本编写,系统没有crontab模块了(不知道谁给误删了估计),就想用python来实现定时,后来参考的下面这个文章写的:先附上我的第一段代码吧,实现了状态10秒钟之后还原 ManInfo里面一个用户的状态还原:


def green(id):

    mans = ManInfo.objects.filter(id=id)
    for m1 in mans:
        m1.isDelete = False
        print(m1.isDelete)
        m1.save()


def demo1(request,id):

    mans = ManInfo.objects.filter(id=id)
    for m1 in mans:
        m1.isDelete = True
        print(m1.isDelete)
        m1.save()

    print('------------------')
    print(id)
    t = Timer(10.0, green,(id))
    t.daemon = True
    t.start()
    print('-----end-----')

    return render(request,'index1.html')

参考文章1:

https://www.jb51.net/article/162407.htm

参考文章2 :推荐阅读 python定时 四种定时模块 ,阻塞和非阻塞讲的很清楚:

https://www.jianshu.com/p/b77d934cc252

 

#参考文章3 关于RuntimeError: main thread is not in main loop  报错参考

https://www.maixj.net/ict/runtimeerror-main-thread-is-not-in-main-loop-21037

2 asyncio详解

https://www.jianshu.com/p/50384d0d3940

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值