-3

我伙计们:

很抱歉打扰你,但这不是懒惰的问题。在谷歌搜索没有成功之后,我在这里发布了这个问题。

我知道如何用 Python 编程,但我的兴趣是 Web 开发。

我想要的很简单:

1) 一个 HTML 文件,带有一个用于写入一个名称的文本框。HTML 文件必须具有经典的

<form action="GetData.py" method="POST">(或 GET)

2) 一个 Python 文件 (GetData.py),它读取文本框的内容并编写如下内容:

你好 <文本框中的姓名>

问题是我发现的所有免费网络托管服务都不允许这样做,并迫使我使用一个网络框架(其中大部分是 Django)。

我已经阅读了 Django 文档,第一个示例立即开始使用我不需要的数据库。

有人可以给我一个关于我必须配置哪些文件以及我必须做哪些配置的线索。

先感谢您。

4

5 回答 5

3

我对 Flask 最熟悉,所以这里有一个简单的“Hello World”:

from flask import Flask, request
app = Flask(__name__)

@app.route('/say_hello/', methods=['GET', 'POST'])
def hello():
    if request.method == 'POST':
        name = request.form['name']
    else:
        name = request.args.get('name', 'Bob')  # Defaults to "Bob"

    return 'Hello {name}!'.format(name=name)

if __name__ == '__main__':
    app.run(debug=True)

还有一些测试:

$ curl -d "name=John" "http://127.0.0.1:5000/say_hello/"  # POST
Hello John!
$ curl "http://127.0.0.1:5000/say_hello/?name=John"       # GET
Hello John!

这是 Flask 部署页面的链接:http: //flask.pocoo.org/docs/deploying/。我不确定它是否有用,因此请阅读您的虚拟主机希望您如何部署应用程序。

于 2012-09-13T04:28:25.750 回答
1

你可以看看Google App Engine。它确实有一个框架,但它是一个非常简单的框架。而且你真的不需要使用它,纯 python 中的任何东西都可能会工作。像Bottle,一个非常简单的网络框架,我认为你可以用它做你想做的事。

于 2012-09-13T04:22:40.527 回答
0

Django 只是 Python 中使用最广泛的 Web 框架。现在 Django 建议的部署运行时是 WSGI。如果您的主机支持它,您也可以运行微框架。如果 Django 是您现在的“唯一”选项,我建议您跳过本教程的数据库部分。您可以从本教程中遵循的步骤:

  1. 创建项目
  2. 开发服务器
  3. 直接跳到教程的第 3 部分(完全),这里再次忽略 db/model 相关的东西

无论如何,谷歌“Django Hello World”,你也可能达到你的目标。:P

于 2012-09-13T04:25:59.537 回答
0

Flask、web.py 或直接的 WSGI 是你的答案。插入 Apache 或 NGINX 的网络服务器 python 模块(如 modWSGI)也将与这些更最小的框架一起使用。

于 2012-09-13T04:28:57.070 回答
0

这是简单的 django 方法;但你真的应该接受@Blender 的回答,因为 Flask (以及其他像bottleweb.py)是完成你的任务的正确方法。正如您将看到的,django 中的简单方法涉及的内容要多得多。

首先,下载并安装django。

然后,启动一个新项目并向其中添加一个新应用程序。然后创建一个forms.py将保存您的表单:

$ django-admin.py startproject simple_foo
$ cd simple_foo
~/simple_foo $ python manage.py startapp form_processor
~/simple_foo $ cd form_processor
~/simple_foo/form_processor $ vi forms.py

添加forms.py这个并保存文件并关闭您的编辑器:

from django import forms

class MyForm(forms.Form):
    name = forms.CharField(label='Your Name:')

接下来,我们创建视图。打开目录中现有views.pyform_processor并添加:

from django.shortcuts import render
from form_processor.forms import MyForm

def home(request):
   if request.method == 'POST':
       f = MyForm(request.POST)
       if f.is_valid():
          return render(request,'results.html',{'result':f.cleaned_data['name']})
       else:
          return render(request,'index.html',{'form': f})
   else:
       return render(request,'index.html',{'form':MyForm()})

最后,创建您的模板。创建一个名为templatesin的目录form_processor。在此目录中,创建一个results.html并在其中键入You entered {{ result }}并保存文件。创建另一个index.html并在其中添加:

<form method="POST" action=".">
  {% csrf_token %}
  {{ form }}
  <input type="submit" />
</form>

至此,您的应用程序已完成。接下来的步骤告诉 django 您的应用程序并将其连接到一个 url。

simple_foo/simple_foo目录中(这不是错字,它有两次),打开settings.py文件。

向下滚动到INSTALLED_APPS并添加您的新应用程序,它应该如下所示:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'form_processor',
)

关闭并保存此文件。在同一simple_foo/simple_foo目录中,打开urls.py. 取消注释下面的第一行# Examples:并将其更改为如下所示:

url(r'^$', 'form_processor.views.home', name='home'),

保存此文件。

现在你完成了。剩下的就是运行内置的 Web 服务器:

burhan@sandbox:~/simple_foo$ python manage.py runserver
Validating models...

0 errors found
Django version 1.4, using settings 'simple_foo.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

打开浏览器http://127.0.0.1:8000/并填写表格。

于 2012-09-13T05:17:42.850 回答