Упражнение. Написание кода для реализации веб-приложения
В этом уроке вы создадите код для начального веб-приложения с помощью средств разработчика.
Создание веб-проекта
В основе средств .NET CLI лежит программа командной строки dotnet
. С помощью этой команды вы создадите новый веб-проект ASP.NET Core.
Выполните следующую команду, чтобы создать новое приложение ASP.NET Core Model-View Cotroller (MVC) с именем BestBikeApp:
dotnet new mvc --name BestBikeApp
Команда создает новую папку с именем BestBikeApp для хранения проекта.
Дополнительное тестирование веб-приложения
чтобы протестировать приложение локально в Azure. Для этого выполните следующие действия.
Выполните следующие команды, чтобы создать и запустить веб-приложение в фоновом режиме:
cd BestBikeApp dotnet run &
Вы должны получить выходные данные, как показано в следующем примере:
[1] <process-number> <username> [ ~/BestBikeApp ]$ Building... warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {b4a2970c-215c-4eb2-92b4-c28d021158c6} may be persisted to storage in unencrypted form. info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:<port> info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development info: Microsoft.Hosting.Lifetime[0] Content root path: /home/cephas_lin/BestBikeApp
В выходных данных запишите значения > процесса и< порта.>
Выполните следующую команду, чтобы перейти к веб-приложению, заменив <порт портом> , указанным на последнем шаге.
curl -kL http://localhost:<port>/
Вы увидите HTML-код, который заканчивается следующими строками:
<div class="text-center"> <h1 class="display-4">Welcome</h1> <p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p> </div> </main> </div> <footer b-b5g3qljvtd class="border-top footer text-muted"> <div b-b5g3qljvtd class="container"> © 2024 - BestBikeApp - <a href="/Home/Privacy">Privacy</a> </div> </footer> <script src="/lib/jquery/dist/jquery.min.js"></script> <script src="/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script> <script src="/js/site.js?v=hRQyftXiu1lLX2P9Ly9xa4gHJgLeR1uGN5qegUobtGo"></script> </body> </html>
Используя <номер> процесса, который вы указали ранее, остановите dotnet:
kill <process-number>
Чтобы создать начальное веб-приложение, мы используем Maven, обычно используемое средство управления проектами и сборки для приложений Java. Мы используем maven-archetype-webapp
шаблон для создания кода для нашего веб-приложения.
Выполните следующие команды в Azure Cloud Shell, чтобы создать новое веб-приложение:
cd ~ mvn archetype:generate -DgroupId=example.demo -DartifactId=helloworld -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.5
Теперь выполните эти команды, чтобы изменить каталог нового приложения helloworld и упаковать приложение для развертывания:
cd helloworld mvn package
После завершения выполнения команды выполните следующие команды, чтобы открыть целевой каталог и перечислить его содержимое:
cd target ls
Теперь у вас есть файл, который helloworld.war
называется пакетом веб-приложения, который мы будем развертывать в Служба приложений.
Чтобы создать начальное веб-приложение Node.js, мы используем диспетчер пакетов узла (npm
) вместе с кодом JavaScript для выполнения фактической обработки веб-страниц.
Выполните следующие команды в терминале, чтобы создать новый
package.json
файл, описывающий наше приложение Node.js:cd ~ mkdir helloworld cd helloworld cat >package.json <<EOL { "name": "helloworld", "version": "1.0.0", "scripts": { "start": "node index.js" } } EOL
Новый package.json
файл создается в текущей папке. При вводе ls
в окно терминала его следует найти в текущей папке. Нам нужен файл JavaScript для выполнения логики веб-сайта. В этом базовом примере нам нужен только один файл: index.js
Создайте файл, выполнив следующую команду в терминале:
cat >index.js <<EOL const http = require('http'); const server = http.createServer(function(request, response) { response.writeHead(200, { "Content-Type": "text/html" }); response.end("<html><body><h1>Hello World!</h1></body></html>"); }); const port = process.env.PORT || 1337; server.listen(port); console.log(\`Server running at http://localhost:\${port}\`); EOL
Дополнительное тестирование веб-приложения
При запуске веб-приложения helloworld можно проверить, выполняется ли оно локально, открыв второй сеанс командной оболочки.
Откройте новую вкладку браузера и перейдите по URL-адресу https://shell.azure.com/.
Из основного сеанса командной оболочки выполните следующие команды, чтобы запустить веб-приложение в фоновом режиме:
cd ~/helloworld npm start &
Вы должны получить выходные данные, как показано в следующем примере:
[1] <process-number> > helloworld@1.0.0 start > node index.js Server running at http://localhost:1337
В выходных данных запишите значение числа <>процесса.
В том же сеансе Cloud Shell выполните следующую команду, чтобы перейти к веб-приложению.
curl -kL http://localhost:1337/
Вы должны увидеть следующие выходные данные:
<html><body><h1>Hello World!</h1></body></html>
Используя <номер> процесса, который вы указали ранее, остановите узел:
kill <process-number>
Чтобы создать начальное веб-приложение, мы используем платформу веб-приложений Flask.
Выполните следующие команды в Azure Cloud Shell, чтобы настроить виртуальную среду и установить Flask в профиле:
python3 -m venv venv source venv/bin/activate pip install flask
Выполните следующие команды, чтобы создать и переключиться в новый каталог веб-приложения:
mkdir ~/BestBikeApp cd ~/BestBikeApp
Создайте файл с именем application.py с базовым HTML-ответом:
cat >application.py <<EOL from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "<html><body><h1>Hello Best Bike App!</h1></body></html>\n" EOL
Чтобы развернуть приложение в Azure, необходимо сохранить список требований к приложению, которые вы сделали для него в файле requirements.txt . Для этого выполните следующую команду:
pip freeze > requirements.txt
Дополнительное тестирование веб-приложения
Вы можете протестировать приложение локально в Azure во время его работы.
Выполните следующие команды, чтобы запустить веб-приложение в фоновом режиме:
cd ~/BestBikeApp export FLASK_APP=application.py flask run &
Вы должны получить выходные данные, как показано в следующем примере:
[1] <process-number> * Serving Flask app 'application.py' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit
В выходных данных запишите значение числа <>процесса. Так как процесс выполняется в фоновом режиме, вы не можете выйти из режима CTRL+C. Вам потребуется остановить его с его номером процесса.
Выполните следующую команду, чтобы перейти к веб-приложению.
curl -kL http://localhost:5000/
Вы должны получить следующие выходные данные HTML:
<html><body><h1>Hello Best Bike App!</h1></body></html>
Используя <номер> процесса, который вы указали ранее, остановите Flask:
kill <process-number>