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