Хаттама CGI CGI (Common Gateway Interface) операцияларымен пайдаланылатын

сервер жаында жазылады HTML нысандары.

URL мекенжайына арылы еркін ресурстарды оу urllib.

Операциялар URL urlparse.

CGI - CGI хаттама

Бл модуль бадарламаларын жазанда пайдалы болады ралдарды сынады,

интерфейс CGI (Common Gateway Interface, Common Gateway пайдалануа конфессияаралы

Python тла).

27.1.1 Кіріспе

детте берілетін деректер шін HTTP-сервер деп аталады CGI-бадарлама,

элементтері арылы пайдаланушы '<FORM>' жне '<ISINDEX>' тілі HTML. HTTP-сервер

тініші (клиентті хост атауы, сраан URL мекенжайына, бу желісі туралы апаратты ояды

срау параметрлері, жне т.б.). Бадарлама оршаан ортаны айнымалы жылы бадарламаны іске осады

жне клиентке оны шыысын жібереді. Тапсырыс берушіні деректерді блігі, сондай-а амтамасыз етілуі ммкін

бадарламаны стандартты енгізу. Cgi модулі барлы ммкіндіктерін аморлы

Деректер мен арапайым интерфейс арылы бадарлама оларды амтамасыз кіметтік дістері.

модуль, сондай-а отладке кезде пайдалы болады ралдар жиынтыын сынады.

орытынды CGI-бадарлама бос жолды блінген екі бліктен трады

Coy. бірінші блігі деректер трін сипаттау таырыптары жиынтыы, мыналарды амтиды

Екінші блімінде ды. арапайым бадарламасы осы сияты крінуі ммкін:

27.1.2 CGI модулін пайдалану

Тапсырмаларын импорт CGI 'бастаыз. CGI бастап «ешашан пайдаланбаыз

импорт * '- модуль ішкі пайдалану шін атауларды жиынтыын анытайды жне

алдыы нсаларымен сыйысымдылы шін, пайда Ba жаымсыз болып табылады

Шам аттар ке істігі.

FieldStorage ([** keyword_args])

Осы сыныпа е жиі пайдаланылатын функционалды мамыр назар аударады

модуль CGI. Баптандыру кезінде, ол, деректер деу, ешандай длел жо

стандартты енгізу жне / немесе сйкес оршаан ортаны

Стандартты CGI1

. Бл жадайда енгізілген стандарт жтып бастап

И, сіз уаыт сынып тек бір данасын жасау керек FieldStorage

бадарламасы.

Конструктор сынып мынадай кілт сзді длелдер абылдайды

(Keyword_args):

FP

Ерік объектісіне, баламалы файлды (немесе сас) крсетііз

FLS деректерді оу. депкі sys.stdin. Бл длел

GET пайдаланан кезде ды еленбейді.

таырыптары

HTTP-таырыптары туралы апаратты крсету. депкі жойылады

оршаан ортаны айнымалы.

табии ортаны

оршаан ортаны айнымалы туралы апаратты крсетеді. депкі пайдалану

os.environ натады.

Keep_blank_values

депкіде, сынып данасын жасау FieldStorage бар емес

ндылытар бос жолдар болып табылады рістер шін жазбалар; шін, мндай ндылытар саталады, бл сіз баптандыру крсетуііз керек

Бл длел TRUE болып табылады.

Strict_parsing

депкіде, деу кезінде пайда ателер, нсіз еленбейді

ruyutsya. Жиынтыы кезде, шынайы длел strict_parsing болса

ате ерекшелік ValueError жинаталатын болады жреді.

Бкіл нысанды толтырып Сонымен атар, пайдалану даналары FieldStorage

'кп / formdata' трінде берілетін нысаны рістер кріністерін ратын.

MiniFieldStorage

Бл сынып даналары пішін рістерін сыну шін пайдаланылады peredan-

«олданба / х-WWW-нысаны-urlencoded» ретінде МЕМЛЕКЕТТІК.

FieldStorage MiniFieldStorage фактілері жне мынадай болды

орта деректер тлсипаттары:

Ат

Далалы атауы немесе Жо.

Файл атауы

клиент, немесе бірде-бір белгіленген файл атауы.

н

жолды ретінде ріс мні, маызы (егер пайдаланылатын бірнеше рістер тізімі

аттас) немесе бірде-бір бар. Нысан файлдарды жктеуге сйкес келетіндігін

р жолы бл атрибут бкіл мазмнын оып жатыр

Файл.

Файл

Файл (немесе сас) деректерді оып алатын объект, немесе

Деректер жолды егер None,.

трі

трі крсетілмесе, егер мазмн ріс трі (таырып «Content-Type ') немесе Жо,.

Type_options

Атаын «Content-Type 'крсетілген параметрлерді сздігі.

кімдер

Саласындаы (таырып «Content-Disposition '), немесе Ешбір мазмнын орналастыру.

Disposition_options

Атаын «Content-Disposition 'крсетілген параметрлерді сздігі.

таырыптары

Барлы атаы шін жазбаларды амтитын крсету.

Интернет хаттамалар шін 358 Бап 27 олдау

Даналары FieldStorage кілдеріне карталар ріс атауларын болып табылады

оларды нысандарын компонент жне картадан тн негізгі операцияларды олдау

білдіру, сондай-а дістері has_key () мен пернелер (). Сонымен атар, олар мыналарды бар

дістері:

GetValue (негізгі [, депкі])

Ешандай ріс бар болса, аты кілт, немесе депкі ріс жол мнін айтарады

Осы аты. Нысаны аттас бірнеше рістері бар болса, айтаратыны

Жол мндер тізімі. депкіде, депкі длел

Жо пайдаланылан.

make_file (екілік)

Бл діс уаытша сатау ендіру класын жасау шін пайдаланылады

деректер. депкі tempfile.TemporaryFile (). Сіз mozhe-

олар, туынды сыныпта осы дісін ауыстырады балама амтамасыз

деректерді уаытша сатауа жол. длел екілік пайдаланылан

файл йтпесе жадайда, екілік режимде ашылады керек жолына 'B',

шай, ол бос жол болып табылады. дісі файлды (немесе сас) айтаруа тиіс

оу жне жазу шін ол жетімді нысан.

Мнда толы болды деп тексеретін CGI-бадарлама, арапайым лгісі болып табылады

Nena кеніштерді атауы «жне» мекен ':

######

Трінде арылы олжетімді формасы рістер [негізгі], іздері сынылуы ммкін

кодтау байланысты алай Rami класс FieldStorage, MiniFieldStorage (

ды) немесе даналарыны тізімі, нысаны крсетілген бірнеше рістерді бар болса

CGI - CGI протоколы 359

атауы. Соы жадайда, діс GetValue (), сондай-а жолдарды тізімін айтарады

ріс мндері. Сізді жадайда бл бірдей бірнеше кен болуы ммкін болса

Nakov атауы, трін анытау шін кіріктірілген функциясы трін () олданыыз:

#####

жне нысан мн тлсипатын атынасу арылы, жктеп файл

барлы файл трінде жолды жадында оылады. Бл мінез рдайым тілекке емес

біра. Сіз нысан ны бойынша, жктеп файл екенін анытау ммкін

файл атауы атрибут немесе файл:

####

жктеу файлдарын йымдастыру жобасын стандартты ескереді

HTML-нысандарыны бірі кен бірнеше файлдарды жктеуге абілеті (рекурсивті

біра) '/ * рамдас' пайдаланып. Бл жадайда объект картасы болады

Сіз бкіл нысанын білдіретін арсылы сас жмыс істей алады кіммен жейді.

Сіз атрибут трі ('obj.type мні нысанды анытауа болады жне

obj.type.startswith ('кп /') ').

Модульді 27.1.3 осымша ммкіндіктері

Cgi модуль, сондай-а, егер пайдалы болар еді осымша ммкіндіктерді анытайды

Біз саыра баылауды ажет.

талдау ([** keyword_args])

Стандартты енгізу жне / немесе оршаан айнымалы процестері деректер

стандартты CGI1 жне сздік картографиялау сйкес