Niulu Academy: Pymysql модул на Python

ioeinternet 30/07/2021 2527

1. Основна нарастваща тестова операция 2, Python извиква съхранена процедура 3, многонишкова реализация операция за достъп до mysql

一、基础操作

Много е неприятно всеки път, когато се свързвате, използвайте управлението на контекста, опростете процеса на свързване.

二、如何python调用 callproc 进行调用储存过程

1. Създайте пълна връзка с MySQL база данни 2. Използвайте курсора (), за да инициализирате курсора на базата данни 3. Използвайте курсора, за да извикате функцията CallProc, за да добавите променливи, които трябва да бъдат възникнали, като например CallProc (име, аргументи) name = "proc_user" , args = ['21 ', SYH]; 4. Курсорът може да предава поредица от набори от резултати, като използва Storeresult, за да получи поредица от точки на итератор към набора от резултати 5. Получавайте резултати с метода FetChall

CallProc не може да получи директно променливите OUT и INOUT, но променливите са налични в сървъра и променливата може да бъде получена от @_procname_n и може да бъде получена според позицията на входящите параметри, като например първия SELECT @ _ProcName_0

调用无参存储过程调用有参存储过程三、多线程、多进程操作mysql

1, multithreaded connection:

Първо с помощта на модула Thieading.Thread, първо създайте MySQL връзка, след това чрез множество нишки, за да изпълните конкретен SQL. Но се установява, че когато се изпълнява, това не е доклад, че mysql връзката е изключена, тоест други грешки при изключение. Интернет заявка, тъй като множество нишки не могат да споделят връзка с база данни, ще има непредвидими ситуации.

Официалните препоръки използват модула за пул за връзки, за да се позовават на практиката на други, да създават пул за връзки с нишки и да създават множество връзки наведнъж.

2. Три начина за създаване на пул от нишки 1) В миналото: използване на модула ThreadPool, това е модул на трета страна на Python, поддържа Python2 и Python3. ThreadPool е по-стар модул. Въпреки че все още има някои хора, които се използват, те вече не са мейнстрийм, относно многонишковия Python, който сега започва в бъдещето (модул FUTURE), конкретният метод на използване е както следва:

Резултатите от операцията са следните:

2) В бъдеще: Използвайки модула Concurrent.futures, този модул е ​​модул от Python3, но Python2.7 или повече версии също могат да бъдат инсталирани и конкретната употреба е както следва:

Резултатите от операцията са следните:

[Забележка] Concurrent.futures.threadpoolexecutor, има два начина при изпращане на задачи, единият е submit (), а другият е map (), основната разлика между двете е:

Картата може да гарантира реда на изхода, редът на изхода за изпращане е хаос

Ако функцията на задачата, която искате да изпратите, е същата, можете да я опростите в Map. Въпреки това, ако подадената функция на задачата е различна или процесът на изпълнение е необичаен (проблемът ще бъде открит директно в изпълнението на изпълнението на MAP), Submit ()

Параметрите за изпращане и MAP са различни. Submit трябва да изпраща целева функция и съответните параметри всеки път, MAP трябва само да изпраща целева функция, а параметърът на целевата функция се поставя в итератор (списък, речник).

3) Сега?

Ето един проблем, изпълнението на горните два пула от нишки е добро. Задачата може да се добави само веднъж, когато пулът от нишки е инициализиран. И така, да предположим, че сега имам такава нужда, трябва да стартирам в пула от нишки и след това да отида отново Добавете нова задача вътре (забележете, е нова задача, а не нова нишка), как се справяте? Всъщност има два начина:

Пренапишете функцията ThreadPool или Future: Този метод изисква изходния код на изходния модул. Трябва да разберете механизма за изпълнение на пула от нишки на изходния модул, за да пренапишете правилно метода според вашите нужди.

Създайте сами пул от нишки: Този метод трябва да има ясно разбиране за пула от нишки, прикрепен към конструиран екземпляр на пул от нишки:

Latest: 5g Baseband на Apple за саморазработка ще бъде използван най-скоро през 2023 г., перспективите на QUALCOMM са тревожни, Mediatek е замесен

Next: Провинция Qiyue Персонализиран синтез на мезопорест композит Fe | Мезопорест Fe3O4 / MnO2 композит