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基础教程之Hello World!
Aug 29 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
python实现微信小程序自动回复
Sep 10 Python
python实现狄克斯特拉算法
Jan 17 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
解决python tkinter界面卡死的问题
Jul 17 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
python django 原生sql 获取数据的例子
Aug 14 Python
django删除表重建的实现方法
Aug 28 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
Python基础之条件语句详解
Jun 16 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
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
python实现提取百度搜索结果的方法
2015/05/19 Python
python实现数组插入新元素的方法
2015/05/22 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
硕士研究生就业推荐信
2014/05/18 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
收入证明申请书
2015/06/12 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python