Хајде да научимо како да изложимо Дјанго демо апликацију на Интернет. То, без постављања у услугу хостинга.
Ужасно је конфигурисање окружења за примену само да би се приказао демо ваше Дјанго апликације. Штавише, ако вам је потребан УРЛ само на неколико минута, да бисте га приказали клијенту или саиграчу.
Најбоља опција је да користите алатку за откривање вашег тренутног локалног сервера. Баш тако! Људи широм света ће моћи да виде шта се дешава на вашем локалном хосту.
У ту сврху користићемо Нгрок. Овај алат ће нам омогућити да креирамо јавне УРЛ адресе на основу локалних портова наших рачунара. Све ово захваљујући магији Тунели.
Пре почетка, сав код који је радио на овом туторијалу, биће доступан у овом Гитхуб спремиште.
Преглед садржаја
Предуслови
Препоручљиво је знати све ове основне ствари. Иако је вероватно да можете да пратите овај водич, без даљих проблема.
Креирање Дјанго апликације
Да бих направио туторијал корак по корак, објаснићу процес креирања Дјанго пројекта. Ако га већ имате, можете прескочити овај одељак.
Виртуелно окружење
Пре свега, хајде да направимо а Питхон виртуелно окружење.
- Дакле, отворите свој системски терминал (или љуску).
- Ако сматрате да је сувише компликовано да отворите системски терминал, покушајте да користите уграђени терминал уређивача кода.
- Кликните на Терминал>Нови терминал и љуска би се требала појавити на дну вашег екрана.
- Откуцајте следећу команду да бисте креирали виртуелно окружење, са уграђеним Питхон алатом.
python -m venv .venv
То у основи значи:
Хеј Питхон, креирај команду виртуелног окружења (-м венв) са именом .венв
- Сада ако наведете датотеке вашег тренутног директоријума, требало би да видите фасциклу .венв.
$ ls -l drwxr-xr-x - daniel 30 abr 23:12 .venv # Other files ...
- Да бисмо активирали виртуелно окружење, позивамо изворну команду.
source .venv/bin/activate
- Ако нађете било какве проблеме, погледајте следећу табелу извучену од званичника питхон документација.
Платформа
Шкољка
Команда за активирање виртуелног окружења
ПОСИКС
басх/зсх
$ соурце <венв>/бин/ацтивате
риба
$ соурце <венв>/бин/ацтивате.фисх
цсх/тцсх
$ соурце <венв>/бин/ацтивате.цсх
ПоверСхелл Цоре
$ <венв>/бин/Ацтивате.пс1
Виндовс
цмд.еке
Ц:> <венв>Сцриптсацтивате.бат
ПоверСхелл
ПС Ц:> <венв>СцриптсАцтивате.пс1
Сада, ако сте покренули исправну команду, ваша шкољка би требало да има име виртуелног окружења у себи.
$ source .venv/bin/activate.fish (.venv) $
Инсталирајте Дјанго
Након што активирате своје виртуелно окружење, сада можете да инсталирате било коју верзију Дјанга коју желите. У овом случају, добар је избор инсталирати најновију верзију.
$ pip install django Collecting django Using cached Django-3.2-py3-none-any.whl (7.9 MB) Collecting pytz Using cached pytz-2021.1-py2.py3-none-any.whl (510 kB) Collecting asgiref<4,>=3.3.2 Using cached asgiref-3.3.4-py3-none-any.whl (22 kB) Collecting sqlparse>=0.2.2 Using cached sqlparse-0.4.1-py3-none-any.whl (42 kB) Installing collected packages: pytz, asgiref, sqlparse, django Successfully installed asgiref-3.3.4 django-3.2 pytz-2021.1 sqlparse-0.4.1
Сада је време да креирате основну структуру пројекта Дјанго апликације коју желите да изложите.
$ django-admin startproject mytestingproject
Ово ће креирати Дјанго пројекат са именом митестингпројецт. Након креирања желимо да уђете у директоријум где се налази структура пројекта. Па хајде да уђемо у њега и покренемо Дјанго сервер.
# Enter to the project directory (.venv)$ cd mytestingproject/ # Listing the files inside the project (.venv) $ ls mytestingproject manage.py
Сада када сте ушли, хајде да покренемо Дјанго сервер да видимо како изгледа.
(.venv) $python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. May 01, 2021 - 04:34:25 Django version 3.2, using settings 'mytestingproject.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
У основи, Дјанго нам говори да локални сервер ради на нашем локалном хосту (127.0.0.1 увек указује на њега), на подразумеваном порту, 8000.
Не брините због поруке о грешци. Прво, хајде да проверимо да ли све ради добро на нашем локалном серверу. Да бисте то урадили, идите у свој веб прегледач и налепите овај правац:
http://localhost:8000/ # Do you note that localhost and 127.0.0.1 are the same?
Ако све ради добро, требало би да видите Дјанго прелеп шаблон.
То је све о нашој Дјанго инсталацији.
Хајде сада да изложимо овај Дјанго пројекат. Ако радите на сложенијем пројекту, следеће методе откривања Дјанго апликација такође ће радити.
Излагање Дјанго апликације са Нгроком
Као што сам рекао раније, Нгрок је један од алата који ће нам омогућити да наш локални сервер поставимо на интернет. Дакле, пре свега Преузмите Нгрок са званичне веб странице.
Када га инсталирате, наставимо са потребним командама.
Отворите другу љуску, задржавајући терминал који ваш Дјанго сервер тренутно ради, и откуцајте.
$ ngrok help NAME: ngrok - tunnel local ports to public URLs and inspect traffic More commands ....
Ово ће вам дати брз поглед на доступне команде које Нгрок нуди, а такође ће вам омогућити да је процес инсталације прошао исправно.
Да бисмо направили УРЛ где људи могу да приступе нашем серверу, покренимо.
$ ngrok http 8000
# secure public URL for port 8000 web server
Покрећемо аргумент хттп, да креирамо УРЛ који ће се повезати на порт 8000 нашег локалног хоста.
Ево резултата који ћете вероватно добити.
ngrok by @inconshreveable (Ctrl+C to quit) Session Status online Session Expires 1 hour, 59 minutes Update update available (version 2.3.39, Ctrl-U to update) Version 2.3.35 Region United States (us) Web Interface http://127.0.0.1:4040 Forwarding http://cac2165aa7f8.ngrok.io -> http://localhost:8000 Forwarding https://cac2165aa7f8.ngrok.io -> http://localhost:8000 Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
Како пише, Нгрок прослеђује тај чудан и ружан УРЛ нашем локалном хосту. Али магија се дешава када у претраживач ударите УРЛ адресу коју вам је дао Нгрок.
Промена подешавања.пи
Вау, шта се управо догодило 😱?
Чини се да Дјанго даје грешку због поставке ДисалловедХост. Ако проверите љуску у којој користите Дјанго сервер и ону са Нгрок сесијом, добићете неке поруке за отклањање грешака.
# Django messages Invalid HTTP_HOST header: 'cac2165aa7f8.ngrok.io'. You may need to add 'cac2165aa7f8.ngrok.io' to ALLOWED_HOSTS. Bad Request: / [01/May/2021 05:07:46] "GET / HTTP/1.1" 400 65196 Invalid HTTP_HOST header: 'cac2165aa7f8.ngrok.io'. You may need to add 'cac2165aa7f8.ngrok.io' to ALLOWED_HOSTS. # Ngrok messages HTTP Requests ------------- GET /favicon.ico 400 Bad Request GET / 400 Bad Request
Као што нам Дјанго говори, морамо додати домен који повезујемо у конфигурациону променљиву АЛЛОВЕД_ХОСТС. Али имамо проблем, а то је што је име домена превелико и збуњујуће.
Па хајде да променимо мало Дјанго подешавања, да решимо ову грешку. Отворите датотеку сеттингс.пи која се налази у фасцикли пројекта.
# mytestingproject/settings.py # Line 28 # Change from ALLOWED_HOSTS = [] # To ALLOWED_HOSTS = ["*"]
Ако знате неки регуларни израз, можете ценити да постављамо џокер знак, где ће сви домаћини бити дозвољени.
Сада поново учитајте сајт и погледајте резултат.
Сада све ради савршено! А ако почнете да креирате апликације за пројекат и постављате УРЛ-ове и приказе, све ће се одразити на том јавном УРЛ-у.
Напомена: Не заборавите да промените АЛЛОВЕД_ХОСТС у продукцији, јер би то створило огромну безбедносну рупу.
Закључци
У овом водичу сте научили како да креирате демо УРЛ за свој Дјанго пројекат, без потребе да га примењујете.
Вежбали сте како да покренете Дјанго пројекат и радите са датотеком сеттингс.пи у Дјангу.
Коначно, научили сте како да користите Нгрок и како да изложите било који локални сервер са њим.
Затим истражите неке од популарних Питхон оквира за прављење АПИ-ја.