练习 - 编写代码以实现 Web 应用
在本单元中,使用开发人员工具为入门 Web 应用创建代码。
创建新的 Web 项目
.NET CLI 工具的核心是 dotnet
命令行工具。 使用此命令创建新的 ASP.NET Core Web 项目。
运行以下命令,创建一个名为“BestBikeApp”的新 ASP.NET Core 模型-视图-控制器 (MVC) 应用程序:
dotnet new mvc --name BestBikeApp
此命令用于创建一个名为“BestBikeApp”的新文件夹来保存项目。
(可选)测试 Web 应用
可以在 Azure 上本地测试应用程序。 为此,请按照以下步骤操作:
运行以下命令,在后台生成和运行 Web 应用程序:
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
在输出中,记下 <process-number> 和 <port> 的值。
运行以下命令以浏览到你的 Web 应用程序,将 <port> 替换为上一步中记录的端口。
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>
使用前面记下的 <process-number>,停止 dotnet:
kill <process-number>
为了创建入门版 Web 应用,我们将使用 Maven,它是一种适用于 Java 应用的常用项目管理和生成工具。 我们将使用 maven-archetype-webapp
模板生成 Web 应用程序代码。
立即在 Azure Cloud Shell 中运行以下命令以创建新的 Web 应用:
cd ~ mvn archetype:generate -DgroupId=example.demo -DartifactId=helloworld -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.5
接下来,请运行这些命令来更改为新的“helloworld”应用程序目录,并打包应用程序进行部署:
cd helloworld mvn package
命令完成运行后,运行下述命令以打开“target”目录并列出其内容:
cd target ls
现在,你有一个名为 helloworld.war
的文件,该文件是我们要部署到应用服务的 Web 应用程序包。
为了创建入门版 Node.js Web 应用,我们使用节点包管理器 (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
(可选)测试 Web 应用
运行 helloworld Web 应用时,可以通过打开另一个命令 shell 会话来验证它是否在本地运行。
在新的浏览器选项卡中,浏览到 https://shell.azure.com/。
在你的主命令 shell 会话中,在后台运行以下命令以启动你的 Web 应用程序:
cd ~/helloworld npm start &
你应该获得类似以下示例的输出:
[1] <process-number> > helloworld@1.0.0 start > node index.js Server running at http://localhost:1337
在输出中,记下 <process-number> 的值。
在同一个 Cloud Shell 会话中,运行以下命令以浏览到你的 Web 应用程序。
curl -kL http://localhost:1337/
应会收到以下输出:
<html><body><h1>Hello World!</h1></body></html>
使用前面记下的 <process-number>,停止 node:
kill <process-number>
为了创建入门版 Web 应用程序,我们将使用 Flask Web 应用程序框架。
在 Azure Cloud Shell 中运行以下命令来设置虚拟环境,并在配置文件中安装 Flask:
python3 -m venv venv source venv/bin/activate pip install flask
运行以下命令以创建并切换到新的 Web 应用目录:
mkdir ~/BestBikeApp cd ~/BestBikeApp
使用基本 HTML 响应创建名为 application.py 的新文件:
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
(可选)测试 Web 应用
当应用程序运行时,可在 Azure 中本地测试它。
运行以下命令,在后台启动你的 Web 应用程序:
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
在输出中,记下 <process-number> 的值。 由于进程在后台运行,因此无法使用 CTRL+C 退出。 你需要使用它的进程编号来停止它。
运行以下命令以浏览到你的 Web 应用程序。
curl -kL http://localhost:5000/
你应会获得以下 HTML 输出:
<html><body><h1>Hello Best Bike App!</h1></body></html>
使用前面记下的 <process-number>,停止 Flask:
kill <process-number>