嘿,你好吗?我今年 18 岁,是一名后端开发者,我希望成为机器学习工程师。在本文中,我会介绍如何使用 Python 在手机上构建 Web 应用程序。开始吧!

必要条件

要满足的第一个条件是拥有一台 Android 手机,至少是 6.0 或更高版本。这就是所需要全部,很简单。

接下来,需要在手机上安装一个名为 pydroid3 的移动应用程序。

如你所见,pydroid3 是一个可在手机上编写 Python 的移动应用程序。

接下来需要安装 Django。如果你不熟悉 Django,请查看此处的 Django 文档

要安装 Django,在 pydroid3 中打开侧边栏,然后选择 Terminal:

然后单击它,如下:

完成后,输入以下命令:

pip install django

应该得到以下内容。我的是 “requirements satisfied” 消息,因为我已经安装了它。

它已成功安装,让我们确认一下。在终端中输入 django-admin,然后按回车键。

信息如下:

这意味着它实际上已经安装好了。

如何构建项目

让我们开始构建项目。打开终端并输入以下命令:

django-admin startproject myapp

这会在根文件夹中创建一个名为 myapp 的 Django 应用程序。

通过输入 cd myapp 进入目录,然后输入 python manage.py runserver。信息如下:

现在服务器已启动。接下来,要在浏览器中对其进行测试,请访问 127.0.0.1:8000

Boom!你应该看到 Django 已成功安装。

我们需要做的下一件事是创建 Django 应用。在 Django 中,项目文件夹就是根目录,而应用程序充当应用程序本身。

要创建 Django 应用,请确保仍在目录中,然后输入 python manage.py startapp todo,这样会在 myapp 项目中创建一个 To-do 应用程序,如下所示:

然后在 todo 文件夹中,我们应该看到类似以下内容:

当我们开始使用它们时,我们将进一步介绍这些文件。

怎样配置应用

现在,让该应用程序可以由 Django 项目提供服务。首先,在 myapp 文件夹中打开 settings.py 文件,然后将 'todo' 添加到已安装的应用中,如下所示:

接下来,我们需要打开 urls.py,并将以下内容添加到代码中:

from django.urls import path, include

path('', include('todo.urls'))

实际发生的是,在 django.urls 中添加 include。在路径(admin)下方,创建了一个空路径,该路径指向包括 todo 应用程序目录中的 urls.py 文件。我希望讲清楚了。

接下来,在 todo 文件目录中创建一个名为 urls.py 的新文件,并在其中添加以下代码:

from django.urls import path
from . import views

urlpatterns = [
	path('', views.index, name='home')
 ]

我们从 django.urls 导入了 path,还从根目录中导入了 views。然后,我们以第一部分为根链接创建了urlpatterns。如你所见,views.index 只是意味着我们将这些视图指向 views.py 文件中的 index 函数。稍后我们会看到它如何工作。

打开 todo 下的 views.py 文件并添加一些代码。

在顶部,像这样导入HttpResponse

from django.http import HttpResponse

并将其添加到它下面:

def index(request):
	return HttpResponse('Hello')

如你所见,我们创建了在 urls.py 中调用的索引函数,并将一个请求参数传递给了它。 然后我们返回一个 HttpResponse

但是之前,需要用 django.http import HttpResponse 导入它——就像ABC一样简单。让我们尝试一下:打开终端并进入 myapp,然后输入 python manage.py runserver 进行测试。

如你所见,它返回了响应。接下来我们将加载模板 HTML 文件。

加载 HTML 文件前,需要按以下顺序在 todo 目录中创建一个这样的文件夹:

todo/templates/todo

在 todo 目录中,创建一个名为 templates 的文件夹。在该文件夹内,创建一个名为 todo 的文件夹,就这么简单。

然后继续创建一个简单的 HTML 文件 index.html,并写入:

<h1>Hello world</h1>

views.py 中添加如下代码加载 HTML:

def index(request):
	return render(request, 'todo/index.html')

现在,我们没有返回响应,而是返回了一个渲染视图,该视图可以渲染 HTML 模板,保存后打开终端 cd 进入到 myapp 中并运行它。浏览器访问显示如下。

如何设置静态文件

现在要设置静态文件,在 todo 目录中创建一个新文件夹并将其命名为 static。在该文件夹内,创建一个文件夹并将其命名为 todo。

所以应该是这样的:/static/todo/

在 todo 目录中,创建一个文件,并将其命名为 main.css,在其中编写一些样式,并保存它。

body {
background-color: red;
}

现在,通过编写以下代码来重新\编辑我们的 index.html 文件:

{% load static %}
<!Doctype html>
<html>
<head>
<title>My page</title>
<link rel="stylesheet" href="{% static 'todo/main.css' %}" >
</head>
<body>
Hello
</body>
</html>

现在运行它:

如果一直按步骤操作,那么应该得到预期结果。

如何加载模型和管理面板

现在加载管理面板,先创建一个超级用户。这很简单——只需打开终端,并 cd 到 myapp 文件夹中,然后键入 python manage.py createsuperuser 并按 Enter 键即可。显示内容如下:

收到一个错误消息,因为还没有运行 python manage.py migrate。键入该内容并按回车键,显示如下:

现在输入 python manage.py createsuperuser,然后按 Enter:

只需填写凭据即可。接下来运行服务并访问 127.0.0.1:8000/admin。

登录后,将被定向到仪表板:

现在已经搞定了管理面板,接下来来使用模型(数据库)。我们将创建一个收集内容的模型。 打开 models.py 文件,并输入以下代码:

class Post(models.Model):
	content = models.CharField(max_length=255, null=False)

    def __str__(self):
    	return self.content

我们创建一个具有参数 models.Model 的类,并定义了一个变量 content,该变量包含一个 CharField(),更像是一个文本字段。最后,我们创建了一个神奇的 str,它返回模型的名称而不是对象。

接下来需要运行 migration。打开终端,进入 myapp,然后输入python manage.py makemigrations。应该会看到以下内容:

这意味着它已经在数据库中创建了 Post 表。运行 python manage.py migrate,结果如下:

一切都清楚了。现在将其添加到管理页面,打开 admin.py 并输入以下代码:

from .models import *

admin.site.register(Post)

我们从模型中导入了所有模型类,并在管理面板中注册了 Post 模型。现在,如果我们打开管理面板,应该看到 post,可以保存一些数据。

请注意,它现在位于 todo 应用程序列表中:

单击它之后,你应该看到以下内容:

然后,可以根据需要创建 post。

如何从数据库渲染数据到视图

最后,我们将从数据库中获取数据。为此,我们需要按如下更新 views.py

from .models import *

def index(request):
	content = Post.objects.all()
    context = {'content': content}
    return render(request, 'todo/index.html', context)

就这么简单:我们从 models.py 中导入所有内容,创建一个名为 content 的变量,然后从表 Post 中检索所有数据。然后,我们将其作为字典传递给视图。因此,只需在 index.html 中使其生效即可,添加以下内容:

{% for contents in content %}
{{content.content}}
{% endfor %}

在这里,我们使用 template 标记编写了一个循环,并获取了所有数据内容。现在,打开你的终端,进入 myapp,然后运行服务器,见证奇迹的时刻:

它可以工作,但是让我们双重检查一下:

结果应为以下内容:

Violà!效果很好。最后,你可以添加一个换行符,这样你可以更清晰地阅读它。我们完成了!

感谢阅读本文!如果你想深入了解 Django 教程,请访问并订阅我的 YouTube 频道 Devstack

原文:How to Build a Web App on Your Phone – Python & Pydroid Android App Tutorial,作者:Precious Oladele