python - 开发 Web 应用程序的一般指南

标签 python database dom

作为一名习惯于开发 native 应用程序的程序员,我正在扩展我的视野并开发我的第一个网络应用程序。我是 Linux 和 C 的中级到专家,Python 和 HTML 的中级,MySQL 和 Java 的初学者到中级。

我正在开发一个网络应用程序,它或多或少是我 friend 的资源分配器。简单来说,我希望这个程序能帮助他管理工作,分配技术人员和设备。主屏幕将是一个嵌入式谷歌日历框架,可以通过动态更新。他们的 API。 现在,某些工作要求技术人员持有某些证书,并且设备必须按特定时间表进行校准。我还想跟踪额外的数据,例如电话号码、电子邮件地址、工作信息等。最重要的是,我希望它看起来不错!

我花了很多时间熟悉 PHP、JavaScript 和 DOM,并且开发了一些功能和简洁的 UI。 到目前为止,我一直在使用 PHP 编写服务器端代码以通过 传递动态 HTML。 MySQL 然后是 JavaScript 来操作 DOM。我有技术人员、证书、工作、电话号码等表格。

我的问题是:

  1. 我开发网络应用程序的一般方法是否遗漏了什么? (服务器端脚本与数据库交互以生成动态 HTML,然后通过 DOM/客户端脚本在客户端对其进行操作)。

  2. 我选择 PHP 是因为它通常与 Web 开发相关联。有哪些选择?作为初学者,我想知道要学习的“最佳”服务器端语言(并且我正在接受挑战),或者至少了解替代方案。

  3. 就客户端而言,JavaScript 似乎就是 IT。是吗?

  4. 我听说过很多关于 AJAX 的信息,但对它知之甚少。它是通过生成 HTML 服务器端的替代方法吗?数据库?它是什么/优点/缺点。

  5. 我了解到框架正在被弃用。我应该远离框架而更多地转向 DOM 操作吗?

  6. 如果要通过 Internet 访问此应用程序,我将需要设置某种登录系统。使用托管服务或私有(private)服务设置身份验证的常用方法有哪些?
  7. (有点跑题了)有什么免费的托管建议吗?我是一名学生,自己托管服务器对我的 friend 来说不可靠。
  8. 我真的很想尽可能多地实现这个项目。尽可能使用 Python。 Python 在浏览器编程方面可以做什么?它需要什么?

最佳答案

  1. Is there anything missing to my general approach for developing a web app? (Server-side scripting interacts with database to produce dynamic HTML which is then manipulated client-side via. the DOM/client-side scripting).

不 - 这是通常的设置。实际上,客户端脚本经常缺失,并且网页在任何交互中都会完全刷新。您的描述非常好。

  1. I chose PHP because it is commonly associated with web development. What are the alternatives? As a beginner I would like to know the "best" server-side language to learn (and I am up for a challenge), or at least be aware of the alternatives.

这是一个有争议的话题,受不同口味的影响,因此通常更适合社区 wiki;此外,已经有一堆这样的问题。

很快,PHP 是最常见的,因为它最容易配置,但它有很多麻烦。 Perl 是老派的,而且相当难读。由于惊人的动态框架(CherryPy 和 Django 与 Sinatra 和 Rails),Python 和 Ruby 目前是 HitTest 门的,但竞争很激烈,每个人都选择了一方。我会告诉你 Ruby 更易于使用,但其他人也会对 Python 说同样的话。但是,配置它们有点困难(即通常不是大多数托管服务提供商的标准选项)。

  1. As far as client-side goes it seems that JavaScript is IT. Is it?

就是这样,如果您谈论的是 HTML。替代方案消失了。

  1. I've heard alot about AJAX but know little to nothing at all about it. Is it an alternative to generating HTML server-side via. a database? What is it/advantages/disadvantages.

AJAX 是一个奇特的名称,用于从 JavaScript 发出 HTTP 请求而无需重新加载页面。请求的内容可以是可执行的 JS,或可解析的 XML,或准备插入的 HTML...,这是唯一一种无需刷新整个页面即可在客户端获取一些数据的方法。

  1. I've read that frames are being deprecated. Should I move away from frames and more towards DOM manipulation?

强调。但是,iframe 有其(有限的)用途。您很可能不需要它们。

  1. If this application is to be available over the internet I will need to setup a login system of some sort. What are common ways of setting up authentication using hosted or private services?

数据库中的用户名+加密密码,当用户输入用户名+密码时,加密密码并与数据库进行校验。如果成功,在 session 中记录用户名。

另一种方式是 OpenID,但它需要第三方 OpenID 提供商。

  1. (Getting a little off topic) Any free hosting suggestions? I'm a student, and hosting the server myself would be unreliable for my friend.

知识不多。我知道 comyr(通用)和 heroku(Ruby),它们都可免费用于非商业用途,AFAICR,但进行一些研究可以获得更多信息。

  1. I would really love to implement as much of this project via. Python as possible. What can Python do in terms of programming for the browser and what would it require?

它可以在服务器端编程方面做任何事情,就像任何其他图灵完备语言一样。它可以很容易地做到这一点,它是一种动态语言,具有许多针对 Web 开发的不错的库。不过,它不会为浏览器 做任何事情。查看轻量级的 CherryPy,以及重量级 Web 应用程序框架的 Django。

但我以为你选择了 PHP?...

关于python - 开发 Web 应用程序的一般指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222654/

相关文章:

python - 如何将 Firebase 与基于 Linux 的客户端应用程序一起使用,以便与服务器进行双向消息通信

python - 与 Flask-socketio 进行私有(private)聊天

python - 如何在 python 中识别 csv 文件中的空白字段?

database - 如何从关系三元组创建图数据库?

javascript - 如何在 jQuery 中找到具有已知类的父级?

php - 对应于 Python 中 PHP 的 preg_match

sql - 为什么在使用 "insert select"或 "merge"时不会在每一行触发触发器

java - 如何使用 REPLICA_SET_SECONDARY 类型对 MongoDB 服务器执行写操作?

javascript - DOM addEventListener : click works but not keyup

c# - 检查 DOM 是否静止