Хаттама 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 және сөздік картографиялау сәйкес

Наши рекомендации