- •Email пакеті
- •Хабарларды талдау. Message классы
- •Хабарлама қалыптастыру
- •Тақырыпша өрісін талдау
- •Import email.Header
- •Import sys
- •Атаулар кеңістігі
- •Import os
- •Cgi модулі
- •Өндіруші ортасы
- •Zope және оның обьектілі моделі
- •Smtplib модулі
- •Poplib модулі
- •Import urllib
- •Import urllib
- •Url талдау үшін функия
- •Urllib2 мүмкіндіктері
- •Import urllib2
- •Қорытынды
- •Обьект – байланыс
Қорытынды
Бұл дәрісте практикалық мысалдарда және құжаттамадағы мәліметтерде интернетте жұмыс істеу үшін стандартты Python беретін мүмкіндіктер көрсетілген. Сценариден Python-ға сокеттер деңгейіндегі байланыстарды басқаруға болады, сонымен қатар нақты желілік хаттама үшін немесе хаттамалар жиынтығы үшін модулдерді қолдануға болады. Сокеттермен жұмыс істеу үшін socket модулі қызмет етеді, жоғары деңгейлі хаттамалар үшін арналған модулдер мынадай аттарға ие smtplib, poplib, httplib және т.б. WWW жүйесімен жұмыс жасау үшін urllib, urllib2, urlparse модулдерін қолдануға болады. Аталған модулдер типтік қолдану тұрғысынан қаралды. Стандартты емес тапсырмаларды шешу үшін басқа көздерге жүгінген дұрыс: құжаттамаға, модулдердің бастапқы кодына, интернеттегі іздеуге. Бұл дәрісте жоғары деңгейлі хаттамаларды серверлік құрушы туралыда айтылды. Мысал ретінде XML-RPC хаттамасы үшін клиент-серверлік жұп келтірілді. Бұл хаттама HTTP негізінде құрылды, бірақ белгілі мақсаттарға қызмет етеді.
10-дәріс Деректер қорымен жұмыс
Реляциялық деректер қорын басқару жүйесінің негізгі түсініктері
Реляциялық деректер қоры – бұл деректермен берілген кестелер жиынтығы.
Кесте – бұл жолдар мен бағандардан тұратын тік бұрышты матрица. Кесте қатынасты (relation) береді.
Жол – бағандар өрістерінен тұратын жазба. Әрбір өрісте кейбір мәндер болуы мүмкін, немесе арнайы NULL (бос) мәні. Кестеде бағандар саны кез келген болуы мүмкін. Реляциялық модель үшін бағандардың орналасу реті анықталмаған және маңызды емес.
Әрбір бағанның кестеде өзінің аты және түрі болады.
DB-API 2 дегеніміз не
Тақырыпшаға шығарылған аббревиатура екі ұғымды біріктіреді: DB (Database, деректер қоры) және API (Application Program Interface, қолданбалы бағдарлама интерфейсі).
Осылайша, DB-API деректер қорымен берілген қолданбалы бағдарлама интерфейсін анықтайды. Төменде сипатталған бұл интерфейс, деректер қорымен берілген Python – бағдарламасын байланыстыру үшін пайдаланылатын барлық кеңейтілген модульдерді жүзеге асыру керек. Біріңғай API (қазіргі сәтте оның екінші нұсқасы) маркадан қолданыстағы мәліметтер қорын елемеуге (абстрагироваться) мүмкіндік береді, қажет болған жағдайда тек бір ғана функциялар және әдістер жиынтығын біле отырып, бір ДҚБЖ басқасына өзгерту өте оңай.
DB-API 2.0 PEP 249-да мәлімделген (сайты http://www.python.org/peps/pep-0249.html/), және төменде келтірілген мәлімет дәл соған негізделген.
DB API 2.0 сипаттамасы
DB API 2.0 деректер қорымен жұмыс істеу үшін кеңейтілген модуль интерфейсін, қорлармен берілген байланыс-обьектісінің әдісін, ағымдағы өңделетін жазбаның меңзер-обьектісін, деректер түрлері және олардың конструкторлары үшін әртүрлі обьектілерін реттейді, сонымен қатар молульдерін жүзеге асырушы әзірлеушілер үшін ұсынымдарды қамтиды. Қазіргі таңда Python кеңейтілген модуль арқылы көптеген белгілі деректер қорын қолдайды. (http://www.python.org/topics/database/ адресі арқылы берілген веб-парақшасы арқылы көруге болады).
Модуль интерфейсі
Бұл жерде айта кететіні, DB-API 2.0 талаптарын қанағаттандыру үшін модульдерді ұсынуы тиіс.
Деректер қорына қол жетімділік байланыс – обьектісі арқылы жүзеге асырылады (connection object). Байланыс – обьектісінің классы үшін DB-API үйлесімді модуль connect() функция – конструкторын қамтамасыз етуі тиіс. Конструкторда параметрлер аттары келесідей болуы тиіс:
dsn жол түріндегі деректер көзінің аты
user Қолданушы аты
password кілттік сөз
host ДҚБЖ жұмыс жасайтын хост адресі
database Деректер қорының аты.
Байланыс обьектісінің әдісі кейінірек қарастырылады.
Модуль оның негізгі мінездемелерінен тұратын тұрақтыларды анықтайды:
apilevel. DB-API нұсқасы ("1.0" немесе "2.0").
threadsafety. Басқарма хаттамаларын қолдану кезіндегі модуль мүмкіндіктерін сипаттайтын, бүтін тұрақты:
0 Модуль ағындарды қолдамайды.
1 Ағындар бірлесіп модулдерді қолдана алады, бірақ байланысты емес.
2 Ағындар бірлесіп модулдерді және байланысты қолдана алады.
3 Ағындар бірлесіп модулдерді, байланысты және курсорды қолдана алады (Мұндағы бірлесіп қолдану деп семафорлардың қолдануынсыз айтылған ресурстарды қолдану мүмкіндігі).
paramstyle. Параметрлерді алмастырудағы белгілеулерді қолдану түрі. Бұл тұрақтының келесі мәндері болуы мүмкін:
"format" ANSI C (мысалы, "%s", "%i") тіл стилінде форматтау.
"pyformat" Python стиліндегі атулы форматтың спецификаторын қолдану ("%(item)s")
"qmark" Параметрлер алмастыруларының орындарын белгілеу үшін.
"numeric" позиция нөмерлерін қолдану (":1").
"named" Алмастырылатын параметр атын қолдану (":name").
Модуль типтік ерекше жағдай оқиғаларын белгілеу үшін ерекше жағдайлар қатарын анықтау керек: Warning (ескерту), Error (қате), InterfaceError (интерфейс қателігі), DatabaseError (деректер қорына жататын, қате).Сонымен қатар соңғы ерекше жағдайдың ішкі класстары: DataError (деректерді өңдеудің қателігі), OperationalError (жұмыстағы қателік немесе деректер қорымен байланыстың үзілуі), IntegrityError (тұтас деректер қорының қателігі), InternalError (деректер қорының ішкі қателігі), ProgrammingError (бағдарламалық қателік, мысалы, SQL-сұрауының синтаксисіндегі қателік), NotSupportedError (сұралған қасиеттерді қолдау болмаған жағдайда).
