Предуслови
Пре него што увежбате скрипту приказану у овом упутству, обавите следеће задатке.
- Инсталирајте Дјанго верзију 3+ на Убунту 20+ (пожељно)
- Направите Дјанго пројекат
- Покрените Дјанго сервер да бисте проверили да ли сервер исправно ради
Подесите апликацију Дјанго
Покрените следећу команду да бисте креирали Дјанго апликацију са именом соцкетапп:
$ питхон3 управља.пи стартапп соцкетаппПокрените следећу команду да бисте инсталирали канал:
$ пип инсталациони каналиДодајте канале и име апликације у ИНСТАЛЛЕД_АПП део подешавања.пи датотека:
ИНСТАЛЛЕД_АППС = […
'канали',
'соцкетапп'
]
Дефинишите вредност АСГИ_АППЛИЦАТИОН у подешавања.пи датотека:
АСГИ_АППЛИЦАТИОН = 'цханнел_про.асги.апликација'Направите фасциклу са именом предлошци унутар соцкетапп директоријума и поставите локацију предлошка у апликацији у ПРЕДЛОЗИ део подешавања.пи датотека:
ПРЕДЛОЗИ = [… .
'ДИРС': ['/ хоме / фахмида / цханнел_про / соцкетапп / темплатес'],
… .
,
]
Следећи излаз ће се појавити у терминалу након покретања Дјанго сервера. Резултат показује да АСГИ / Канали верзија 3.0.3 ради.
Направите датотеку шаблона са именом индекс.хтмл на дефинисаној локацији шаблона за приказ података које шаље ВебСоцкет. Објекат соцкет који је креиран помоћу ЈаваСцрипт-а чита податке помоћу ЈСОН-а.парсе () метода, а затим пренесите вредност у садржај датотеке
ознака која садржи вредност ИД, 'мсг.'
индекс.хтмл
тект
Измените погледа.пи досије соцкетапп са следећим садржајем. Тхе индекс.хтмл Датотека шаблона ће се приказати у прегледачу помоћу текст променљива када је индекс () метода ове скрипте позива се из урл адресе.пи датотека. Ако се из утичнице не преноси порука, тада се приказује текст 'ЛинукХинтће бити приказано у прегледачу.
погледа.пи
# Увезите модул за приказивање из Дјангаод дјанго.пречице импорт рендер
# Креирајте функцију индекса за приказ ХТМЛ датотеке у прегледачу
деф индекс (захтев):
ретурн рендер (захтев, "индекс.хтмл ", цонтект = 'тект': 'ЛинукХинт')
Измените урл адресе.пи досије соцкетапп са следећим садржајем. У скрипти су дефинисана два пута: 'админ /'путања се користи за отварање контролне табле Дјанго администрације, а'мсг /'путања се користи за читање поруке ВебСоцкет.
урл адресе.пи
од дјанго.допринос увоз админод дјанго.путања за увоз УРЛ адреса
из приказа увоза соцкетапп
урлпаттернс = [
патх ('админ /', админ.сајт.урлс),
патх ('мсг /', виевс.индекс)
]
Када се изврши следећа УРЛ адреса без дефинисања потрошача и датотека усмеравања, ХТТП протокол ће радити и појавиће се следећи излаз.
хттп: // лоцалхост: 8000 / мсг
Сада креирајте потрошачи.пи датотека унутар соцкетапп директоријум са следећом скриптом. Тхе цоннецт () метод вс_цонсумер користиће се за прихватање соцкет везе, читање тренутне вредности времена сваке секунде и слање тренутног времена у ЈСОН формату путем ВебСоцкет-а када се овај метод позове из датотеке усмеравања.
потрошачи.пи
# Увоз ЈСОН модулаимпорт јсон
# Увези ВебсоцкетЦонсумер
са канала.општи.вебсоцкет импорт ВебсоцкетЦонсумер
# Увоз модула за датум и време
од датетиме увоз датетиме
# Увези модул спавања
од времена увозни сан
# Дефинишите класу потрошача за слање података путем ВебсоцкетЦонсумер
класа вс_цонсумер (ВебсоцкетЦонсумер):
деф повезивање (само):
себе.прихвати ()
вхиле (Тачно):
сада = датум и време.Сада()
себе.послати (јсон.одлагалишта ('тимеВалуе': сада.стрфтиме ("% Х:% М:% С")))
спавање (1)
Направите усмеравање.пи унутар соцкетапп директоријум са следећом скриптом. Тхе 'мсг /'пут је дефинисан у скрипти за позивање потрошача ради слања података у утичницу.
усмеравање.пи
од дјанго.путања за увоз УРЛ адресаод .потрошачи увозе вс_цонсумер
# Поставите путању за позивање потрошача
вс_урлпаттернс = [
патх ('мсг /', вс_цонсумер.ас_асги ())
]
Измените асги.пи датотека са следећом скриптом. Модули који су потребни за обраду ХТТП и ВебСоцкет захтева увозе се у скрипту.
асги.пи
# Увоз ос модулаимпорт ос
# Увезите гет_асги_апплицатион за обраду хттп протокола
од дјанго.језгро.асги импорт гет_асги_апплицатион
# Увезите ПротоцолТипеРоутер и УРЛРоутер да бисте поставили усмеравање вебсоцкет-а
са канала.усмјеравање увоза ПротоцолТипеРоутер, УРЛРоутер
# Увезите АутхМиддлевареСтацк за руковање вебсоцкетом
са канала.аутх импорт АутхМиддлевареСтацк
# Увези усмеравање веб странице
од соцкетапп.усмјеравање увоза вс_урлпаттернс
# Доделите вредност за ДЈАНГО_СЕТТИНГС_МОДУЛЕ
ос.околина.сетдефаулт ('ДЈАНГО_СЕТТИНГС_МОДУЛЕ', 'цханнел_про.подешавања ')
# Дефинишите променљиву апликације која ће обрађивати хттп и вебсоцкет
апплицатион = ПротоцолТипеРоутер (
'хттп': гет_асги_апплицатион (),
'вебсоцкет': АутхМиддлевареСтацк (УРЛРоутер (вс_урлпаттернс))
)
Сада поново покрените следећу УРЛ адресу из прегледача да бисте прочитали податке из ВебСоцкет-а.
хттп: // лоцалхост: 8000 / мсг /
Ако потрошач и рутер исправно раде, следећи дигитални сат ће бити приказан у прегледачу. Овде је рутер послао захтев ВебСоцкет користећи 'мсг /'пут до потрошача који је прихватио захтев и послао податке на образац да би се приказао дигитални сат у прегледачу где се друга вредност тренутног времена ажурира сваке секунде.
Закључак
Овај водич вам је показао како да примените апликацију у реалном времену помоћу Дјанго оквира и канала стварањем једноставног дигиталног сата. Друге врсте апликација у реалном времену такође се могу применити помоћу Дјанго-а и канала, попут система за ћаскање на мрежи. Скрипте коришћене у овом упутству раде само за верзије Дјанго 3+ и Цханнел 3+. Дакле, ако користите старију верзију Дјанго-а или Цханнел-а, мораћете да надоградите верзију пре тестирања скрипте дате у овом упутству.