为什么我需要Django来创建一个简单的Hello World?

时间:2012-09-13 04:14:25

标签: python django

我们:

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

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

我想要的很简单:

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

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

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

您好<文本框中的名称>

问题在于我发现所有免费的网络托管服务,不允许这样做,并强迫我使用一个Web框架(大多数是Django)。

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

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

提前谢谢你。

5 个答案:

答案 0 :(得分: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/。我不确定它是否有用,所以请阅读您的webhost希望如何部署应用程序。

答案 1 :(得分:1)

您可以查看Google App Engine。它确实有一个框架,但它非常简单。并且你真的不需要使用它,纯python中的任何东西都可能有效。就像Bottle一样,这是一个非常简单的网络框架,我认为你可以完全按照自己的意愿去做。

答案 2 :(得分:0)

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

  1. Creating a project
  2. The development server
  3. 直接跳转到part 3 of the tutorial(完全),再次忽略与db / model相关的内容
  4. 无论如何,谷歌“Django Hello World”你也可能达到你的目标。 :P

答案 3 :(得分:0)

Flask,web.py或直接WSGI是您的答案。插入Apache或NGINX的webserver python模块(如modWSGI)也可以使用这些更小的框架。

答案 4 :(得分:0)

这是简单的django方法;但你应该接受@Blender的回答,因为Flask(以及bottleweb.py等其他人)是完成任务的正确方法。正如您所看到的,django中的简单方法更为复杂。

首先,download and install 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.py目录中的现有form_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()})

最后,创建模板。在templates中创建名为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/并填写表单。