python 串行执行和并行执行实例


Posted in Python onApril 30, 2020

我就废话不多说了,大家还是直接看代码吧!

#coding=utf-8
 
import threading
 
import time
 
import cx_Oracle
 
from pprint import pprint
 
import csv
 
print time.asctime()
 
table_name = "dbtest.csv"
 
f = open(table_name + ".csv", "w")
 
conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
cursor = conn.cursor()
 
def query01():
 
  tname = threading.current_thread()
 
  aa=10
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
def query02():
 
  tname = threading.current_thread()
 
  aa=20
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
def query03():
 
  tname = threading.current_thread()
 
  aa=30
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
def query04():
 
  tname = threading.current_thread()
 
  aa=40
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
def query05():
 
  tname = threading.current_thread()
 
  aa=50
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
def query06():
 
  tname = threading.current_thread()
 
  aa=60
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
def query07():
 
  tname = threading.current_thread()
 
  aa=70
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  return row
 
  cursor.close()
 
def query08():
 
  tname = threading.current_thread()
 
  aa=80
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
def query09():
 
  tname = threading.current_thread()
 
  aa=90
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
def query10():
 
  tname = threading.current_thread()
 
  aa=100
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close() 
 
 
threads = []
 
t1 = threading.Thread(target=query01, name='query01')
 
threads.append(t1)
 
t2 = threading.Thread(target=query02, name='query02')
 
threads.append(t2)
 
t2 = threading.Thread(target=query03, name='query03')
 
threads.append(t2)
 
t2 = threading.Thread(target=query04, name='query04')
 
threads.append(t2)
 
t2 = threading.Thread(target=query05, name='query05')
 
threads.append(t2)
 
t2 = threading.Thread(target=query06, name='query06')
 
threads.append(t2)
 
t2 = threading.Thread(target=query07, name='query07')
 
threads.append(t2)
 
t2 = threading.Thread(target=query08, name='query08')
 
threads.append(t2)
 
t2 = threading.Thread(target=query09, name='query09')
 
threads.append(t2)
 
t2 = threading.Thread(target=query10, name='query10')
 
threads.append(t2) 
 
if __name__ == '__main__':
 
  for t in threads:
 
    # t.setDaemon(True)
 
    t.start()
 
    # t.run()
 
    # t.start()
 
    # print '3333333'
 
    print threading.current_thread()
 
    # print t.is_alive()
 
    # print '3333333'
 
    t.join()
 
  print "all over "
 
  print time.asctime() 
 
 
C:\Python27\python.exe C:/Users/tlcb/PycharmProjects/untitled/a2.py
 
Wed Mar 28 11:08:19 2018
 
<_MainThread(MainThread, started 18744)>
 
[(10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10'), (10, '10sssssssss10', 'tlcb', 'tlcb'), (10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10')]
 
<_MainThread(MainThread, started 18744)>
 
[(20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20')]
 
<_MainThread(MainThread, started 18744)>
 
[(30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30')]
 
<_MainThread(MainThread, started 18744)>
 
[(40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40')]
 
<_MainThread(MainThread, started 18744)>
 
[(50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50')]
 
<_MainThread(MainThread, started 18744)>
 
[(60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60')]
 
<_MainThread(MainThread, started 18744)>
 
<_MainThread(MainThread, started 18744)>
 
[(80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80')]
 
<_MainThread(MainThread, started 18744)>
 
[(90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90')]
 
<_MainThread(MainThread, started 18744)>
 
[(100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100')]
 
all over 
 
Wed Mar 28 11:08:34 2018 
 
Process finished with exit code 0 
 
 
这个时候是串行 花费了15秒 
 
 
多线程跑:
 
#coding=utf-8
 
import threading
 
import time
 
import cx_Oracle
 
from pprint import pprint
 
import csv
 
print time.asctime()
 
table_name = "dbtest.csv"
 
f = open(table_name + ".csv", "w") 
 
 
def query01():
 
  tname = threading.current_thread()
 
  aa=10
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query02():
 
  tname = threading.current_thread()
 
  aa=20
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query03():
 
  tname = threading.current_thread()
 
  aa=30
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query04():
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  tname = threading.current_thread()
 
  aa=40
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query05():
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  tname = threading.current_thread()
 
  aa=50
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query06():
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  tname = threading.current_thread()
 
  aa=60
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query07():
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  tname = threading.current_thread()
 
  aa=70
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query08():
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  tname = threading.current_thread()
 
  aa=80
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query09():
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  tname = threading.current_thread()
 
  aa=90
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close()
 
def query10():
 
  conn = cx_Oracle.connect('tlcbuser/tlcbuser@20.5.101.31/tlyy')
 
  cursor = conn.cursor()
 
  tname = threading.current_thread()
 
  aa=100
 
  # cursor.execute("SELECT * FROM TEST100 WHERE ID = %s", [aa])
 
  cursor.prepare("""SELECT * FROM TEST100 WHERE ID=:id""")
 
  cursor.execute(None,{'id':aa})
 
  row = cursor.fetchall()
 
  print row
 
  return row
 
  cursor.close()
 
  conn.close() 
 
 
threads = []
 
t1 = threading.Thread(target=query01, name='query01')
 
threads.append(t1)
 
t2 = threading.Thread(target=query02, name='query02')
 
threads.append(t2)
 
t2 = threading.Thread(target=query03, name='query03')
 
threads.append(t2)
 
t2 = threading.Thread(target=query04, name='query04')
 
threads.append(t2)
 
t2 = threading.Thread(target=query05, name='query05')
 
threads.append(t2)
 
t2 = threading.Thread(target=query06, name='query06')
 
threads.append(t2)
 
t2 = threading.Thread(target=query07, name='query07')
 
threads.append(t2)
 
t2 = threading.Thread(target=query08, name='query08')
 
threads.append(t2)
 
t2 = threading.Thread(target=query09, name='query09')
 
threads.append(t2)
 
t2 = threading.Thread(target=query10, name='query10')
 
threads.append(t2) 
 
 
if __name__ == '__main__':
 
  for t in threads:
 
    # t.setDaemon(True)
 
    t.start()
 
    # t.run()
 
    # t.start()
 
    # print '3333333'
 
    print threading.current_thread()
 
    # print t.is_alive()
 
    # print '3333333'
 
  t.join()
 
  print "all over "
 
  print time.asctime() 
 
 
C:\Python27\python.exe C:/Users/tlcb/PycharmProjects/untitled/a2.py
 
Wed Mar 28 11:12:47 2018
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
<_MainThread(MainThread, started 22500)>
 
[(40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40'), (40, '40boobook40', '40aaaaaaaaaaaa40', '40bbbbbbbbbbbbbbbbb40')]
 
[(60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60'), (60, '60boobook60', '60aaaaaaaaaaaa60', '60bbbbbbbbbbbbbbbbb60')]
 
[(80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80'), (80, '80boobook80', '80aaaaaaaaaaaa80', '80bbbbbbbbbbbbbbbbb80')]
 
[(50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50'), (50, '50boobook50', '50aaaaaaaaaaaa50', '50bbbbbbbbbbbbbbbbb50')]
 
[(10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10'), (10, '10sssssssss10', 'tlcb', 'tlcb'), (10, '10boobook10', '10aaaaaaaaaaaa10', '10bbbbbbbbbbbbbbbbb10')]
 
[(20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20'), (20, '20boobook20', '20aaaaaaaaaaaa20', '20bbbbbbbbbbbbbbbbb20')]
 
[(30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30'), (30, '30boobook30', '30aaaaaaaaaaaa30', '30bbbbbbbbbbbbbbbbb30')]
 
[(100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100'), (100, '100boobook100', '100aaaaaaaaaaaa100', '100bbbbbbbbbbbbbbbbb100')]
 
[(90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90'), (90, '90boobook90', '90aaaaaaaaaaaa90', '90bbbbbbbbbbbbbbbbb90')]
 
all over 
 
Wed Mar 28 11:12:55 2018 
 
Process finished with exit code 0 
 
此时花了 8秒

补充知识:python logging定制logstash的json日志格式

最近一直在折腾日志的收集,现在算是收尾了。 写一篇算python优化logstash的方案。

其实大家都知道logstash调用grok来解析日志的话,是要消耗cpu的成本的,毕竟是需要正则的匹配的。

根据logstash调优的方案,咱们可以预先生成json的格式。 我这边基本是python的程序,怎么搞尼 ?

有两种方法,第一种方法是生成json后,直接打入logstash的端口。 还有一种是生成json写入文件,让logstash做tail操作的时候,把一行的日志数据直接载入json就可以了。

python下的日志调试用得时logging,改成json也是很好改得。 另外不少老外已经考虑到这样的需求,已经做了python logstash的模块。

import logging
import logstash
import sys

host = 'localhost'

test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)
test_logger.addHandler(logstash.LogstashHandler(host, 5959, version=1))
# test_logger.addHandler(logstash.TCPLogstashHandler(host, 5959, version=1))

test_logger.error('python-logstash: test logstash error message.')
test_logger.info('python-logstash: test logstash info message.')
test_logger.warning('python-logstash: test logstash warning message.')

# add extra field to logstash message
extra = {
  'test_string': 'python version: ' + repr(sys.version_info),
  'test_boolean': True,
  'test_dict': {'a': 1, 'b': 'c'},
  'test_float': 1.23,
  'test_integer': 123,
  'test_list': [1, 2, '3'],
}
test_logger.info('python-logstash: test extra fields', extra=extra)

python-logstash自带了amqp的方案

import logging
import logstash

# AMQP parameters
host = 'localhost'
username = 'guest'
password= 'guest'
exchange = 'logstash.py'

# get a logger and set logging level
test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)

# add the handler
test_logger.addHandler(logstash.AMQPLogstashHandler(version=1,
                          host=host,
                          durable=True,
                          username=username,
                          password=password,
                          exchange=exchange))

# log
test_logger.error('python-logstash: test logstash error message.')
test_logger.info('python-logstash: test logstash info message.')
test_logger.warning('python-logstash: test logstash warning message.')

try:
  1/0
except:
  test_logger.exception('python-logstash: test logstash exception with stack trace')

不管怎么说,最后生成的格式是这样就可以了。

{
  "@source"=>"unknown",
  "@type"=>"nginx",
  "@tags"=>[],
  "@fields"=>{
    "remote_addr"=>"192.168.0.1",
    "remote_user"=>"-",
    "body_bytes_sent"=>"13988",
    "request_time"=>"0.122",
    "status"=>"200",
    "request"=>"GET /some/url HTTP/1.1",
    "request_method"=>"GET",
    "http_referrer"=>"http://www.example.org/some/url",
    "http_user_agent"=>"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.79 Safari/537.1"
  },
  "@timestamp"=>"2012-08-23T10:49:14+02:00"
}

我这里简单提一下,这个模块用的不是很满意,我在python下把日志打成了json字符串,我原本以为会像grok那样,在Es里面,我的这条日志是个字段的结构,而不是这个日志都在message里面…. 我想大家应该明白了我的意思,这样很是不容易在kibana的搜索…

在kibana搜索,我经常上 source:xxx AND level:INFO 结果正像上面描述的那样,整条日志,都在@message里面。

以上这篇python 串行执行和并行执行实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入Python函数编程的一些特性
Apr 13 Python
python 调用win32pai 操作cmd的方法
May 28 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python模拟用户登录验证
Sep 11 Python
python+django加载静态网页模板解析
Dec 12 Python
浅谈flask中的before_request与after_request
Jan 20 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
python 使用 requests 模块发送http请求 的方法
Dec 09 Python
python Tkinter版学生管理系统
Feb 20 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
Django Channel实时推送与聊天的示例代码
Apr 30 #Python
Django ORM 查询表中某列字段值的方法
Apr 30 #Python
Python pip install如何修改默认下载路径
Apr 29 #Python
Django 5种类型Session使用方法解析
Apr 29 #Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 #Python
Python退出时强制运行一段代码的实现方法
Apr 29 #Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 #Python
You might like
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python基于twisted实现简单的web服务器
2014/09/29 Python
Python中字典和JSON互转操作实例
2015/01/19 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
python与字符编码问题
2019/05/24 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
教师节老师寄语
2015/05/28 职场文书
死亡诗社观后感
2015/06/05 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python