用 Python 在安卓手机上构建 Web 应用程序

昨天

嘿,你好吗?我今年 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 pathfrom . 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à!效果很好。最后,你可以添加一个换行符,这样你可以更清晰地阅读它。我们完成了!

感谢阅读本文!


原文链接:https://www.freecodecamp.org/news/how-to-code-on-your-phone-python-pydroid-android-app-tutorial/
作者:Precious Oladele
译者:ZhichengChen
在线译者交流会预告
在线译者交流会将于北京时间 3 月 20 日周六下午 13:00 - 15:00 开展(每周都在这个时间开展)。
欢迎所有感兴趣参与 freeCodeCamp 社区翻译协作的伙伴参与交流会。添加小助手微信 fcczhongguo,加入会议室。
非营利组织 freeCodeCamp.org 自 2014 年成立以来,以“帮助人们免费学习编程”为使命,创建了大量免费的编程教程,包括交互式课程、视频课程、文章等。我们正在帮助全球数百万人学习编程,希望让世界上每个人都有机会获得免费的优质的编程教育资源,成为开发者或者运用编程去解决问题。
不看的原因确定内容质量低不看此公众号
(0)

相关推荐

  • 前端教程:DjangoURL映射

    现在,我们有一个工作视图在前面的章节中解释.我们希望通过一个URL来访问该视图. Django有他自己 URL映射的方式,现在我们来编辑项目中的 url.py 文件(myproject/url.py) ...

  • 前端教程:DjangoAjax应用

    Ajax基本上是集成到一起,以减少页负载数量的技术的组合.我们通常使用Ajax来缓解的最终用户体验.在Django使用Ajax可以直接使用Ajax库如jQuery或其它来完成.比方说,想使用jQuer ...

  • 前端教程:Django模型

    创建模型 下面是创建一个 Dreamreal 模型实例 − from django.db import models class Dreamreal(models.Model): website = ...

  • 前端教程:DjangoApache配置

    到目前为止,在我们的例子中,都是使用 Django 开发的web服务器.但这种服务器只是用于测试和不适合生产环境.一旦程序发布投入生产,就需要如Apache,Nginx等一个真正的服务器,我们在这一节 ...

  • 前端教程:Django通用视图

    在某些情况下编写视图代码,正如我们所看到前面工作真的很繁重.想象一下,只需要一个静态页面或列表页. Django还提供了一种简单的方法来设置这些简单的视图被称为通用视图. 不同于传统的视图,一般的视图 ...

  • 前端教程:Django上传文件

    对于Web应用程序,以便能够上传文件(资料图片,歌曲,PDF格式,文字......),它通常是很有用的.让我们在这一节中来讨论如何使用Django上传文件. 上传图片 在开始开发图片上传之前,请确保P ...

  • 2021年python库大全

    一.算法设计 Python 的数据结构,算法和设计模式的实现.另请参阅真棒算法. 演算法 algorithms 数据结构和算法的最小示例. https://github.com/keon/algori ...

  • 数据库表反向生成(二) Django ORM inspectdb

    如果你已经有已知的数据库及表格. 运行下面代码可以自动生成models模型文件 python manage.py inspectdb > your_app_name/models.py 或者py ...

  • 想把安卓手机上的视频投屏到电视,该怎么投屏到电视?

    为什么有些人喜欢将手机上的内容给投屏都电视上呢?哈哈来一个专业的说法,有关资料表明,用手机看文字图片相比书本报纸内容更费眼,也就是手机看东西需要更大的聚焦.而手机的缺点就是屏幕比较小,视觉上来说没有电 ...

  • 安卓手机上的视频投屏到电视,怎么操作?

    为什么有些人喜欢将手机上的内容给投屏都电视上呢?哈哈来一个专业的说法,有关资料表明,用手机看文字图片相比书本报纸内容更费眼,也就是手机看东西需要更大的聚焦.而手机的缺点就是屏幕比较小,视觉上来说没有电 ...

  • 安卓手机上最棒的裸眼3D壁纸 苹果羡慕嫉妒恨了

    安卓手机上最棒的裸眼3D壁纸 苹果羡慕嫉妒恨了

  • 据说这是安卓手机上的第一神器!

    手机,绝对是一个现代人类离不开的东西. 你让队长三天不吃饭都没啥问题,但让我在一个密闭环境下好几天不碰手机,这怕不是蓄意谋杀. 但偶尔有些 APP 也有不尽人意的地方,尤其是某些应用的某些操作,简直逼 ...

  • 安卓手机上的 “安卓模拟器”,太逗了~

    搜罗君,每日优质搜罗 搜罗君非常感谢 surprise.二月 两位小伙伴协助测试软件.测试机型包括:honnr8.honor10.mate 20.p30.魅族 s6.小米8.小米mix3. 从上一篇文 ...

  • 谷歌和三星正在修复安卓手机上的壁纸死机Bug

    针对之前的那个安卓手机的壁纸Bug,就是把特定的图片设置成手机的壁纸之后,手机就会进入到不停的亮屏.暗屏的循环当中,并且不可手动解锁进入手机.当时分析是由于系统色域管理造成的.不过,谷歌的一位名字叫做 ...

  • 国外Windows 10 PC都可以打电话了,在安卓手机上安装“你的手机”就行

    虽然微软做"电话"很失败,比如说Windows Mobile.Windows Phone以及Windows 10 Mobile,从Mobile到Phone再到10个Mobile(A ...

  • 手机壁纸app排行榜前十名:安卓壁纸上榜,第二是动态壁纸

    手机是现代人们必不可少的数码产品,而随着科技的发达,原先手机的通讯作用,逐步演变为了现今的生活类作用,支付.购物.玩游戏还有社交,都离不开手机的作用,而手机壁纸是装饰手机非常好的方式,排行榜123今天 ...

  • PyWebIO - 使用交互式Python构建Web应用

    WEB前端开发社区 昨天 想要构建一个 Web 应用,提供表格和图表的展示,以及输入框输入等功能,掌握 HTML.CSS 和 Javascript 几乎是必须的.然而,对于一些入门的开发者,以及众多的 ...