嘿,你好吗?我今年 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