2011-02-06 33 views
6

Tôi đã được một người bạn tiếp cận vài ngày trước - người có rất ít kinh nghiệm lập trình và anh ấy có một dự án mà anh ấy yêu cầu trợ giúp.Tải lên và xử lý tệp bằng Python

Về cơ bản - đây là những gì anh ta đang cố gắng để hoàn thành:

1.) Create a website that can accept text files as input. 
2.) Read said file and pass the parameters contained in the 
    file to a python script. 
3.) Output these results of the script on the same webpage upon completion. 

Ngài biết một lượng nhỏ Python (đủ để viết kịch bản xử lý), nhưng ông không có ý tưởng đi đâu từ đây. Tôi đã làm một ví dụ nhanh cho anh ta bằng cách sử dụng một trang ASP mà đọc trong một tập tin, và sử dụng IronPython để vượt qua các tham số vào một tập tin kịch bản và kết quả đầu ra, mà làm việc giống như tôi đã mong đợi nó. Tuy nhiên, đối với anh ấy tôi đã hy vọng hướng dẫn anh ta đúng hướng phát triển một ứng dụng đơn giản hơn nhiều để thực hiện điều này và hy vọng sẽ tìm thấy một số gợi ý hoặc nghe một số suy nghĩ về các cách tiếp cận khác nhau. Tôi tính do thiếu kinh nghiệm của mình đơn giản hơn, càng tốt.

Xin cảm ơn các bạn.

+0

có thể điều này sẽ giúp bạn đi đúng hướng: http://docs.djangoproject.com/en/dev/topics/http/file-uploads/?from=olddocs –

+0

Cùng một ứng dụng web trong các khung công tác khác nhau: appengine, bình, web.py, juno, chai, itty, django, ... https://github.com/agiliq/so-starving – jfs

Trả lời

6

Flask rất đơn giản, cực kỳ mạnh mẽ và trực quan. Tôi thích nó hơn Django cho các dự án nhỏ hơn, như Django sử dụng cách quá nhiều thư mục (chỉ cần làm theo hướng dẫn giới thiệu). Đây là những gì tôi có nghĩa là đơn giản và trực quan. Tôi thực sự không thể giải thích nó bằng lời, vì vậy đây là một kịch bản ví dụ:

File:script.py

app = Flask(__name__) 
app.config.from_object(__name__) 

@app.route('/') 
def index(): 
    return render_template('index.html', message = 'Hello') 

if __name__ == '__main__': 
    app.run(host = '0.0.0.0') 

File:index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    <title>Test</title> 
    </head> 

    <body> 
    {% if message != 'nope' %} 
    {{ message }} 
    {% endif %} 
    </body> 
</html> 

Chỉ cần suy nghĩ của tôi, vì vậy tốt may mắn.

+0

Cảm ơn Blender - Đây chính xác là những gì chúng tôi đang tìm kiếm! :) –

+0

Không sao cả. Các tài liệu trực tuyến là nhiều hơn hoặc ít hơn nơi duy nhất để tìm thấy bất cứ điều gì về Flask, nhưng nó có lẽ là điều duy nhất bạn sẽ cần: http://flask.pocoo.org/docs/ – Blender

+0

Heh, trong khi tôi đã viết mã ví dụ, Tôi vô tình ghi đè toàn bộ ứng dụng thư viện 500 dòng của mình bằng cách lưu tệp này. Điều tốt tôi đã xóa một Tarball của nguồn trước! – Blender

2

Có thể anh ta xem Flask? http://flask.pocoo.org/ Khung web rất đơn giản trong Python để tạo nhanh một trang web nhỏ.

+0

Cảm ơn gigimon :) –

0

Nếu bạn của bạn muốn có được một cái gì đó với nhau rất nhanh chóng và dễ dàng và không có nhiều kinh nghiệm lập trình, tôi nghĩ rằng đặt cược tốt nhất của mình sẽ là web2py. Nó không yêu cầu cài đặt hoặc cấu hình, không có phụ thuộc, và bao gồm một máy chủ web, một cơ sở dữ liệu quan hệ, và một môi trường phát triển tích hợp dựa trên web và giao diện quản trị (demo).

Đó là very easy to learn và được thiết kế cho ease of use and developer productivity. Bạn có thể làm được rất nhiều với mã rất ít nhờ vào ứng dụng giàn giáo đi kèm cùng với nhiều hành vi mặc định hợp lý. Nếu ứng dụng trở nên phức tạp hơn, web2py có thể xử lý nó, vì nó là một khung công tác đầy đủ tích hợp với nhiều chức năng tích hợp, bao gồm lớp trừu tượng cơ sở dữ liệu, xử lý biểu mẫu và xác thực, kiểm soát truy cập, dịch vụ web và dễ dàng Tích hợp Ajax.

Nếu anh ấy cần trợ giúp để bắt đầu hoặc có bất kỳ câu hỏi nào, anh ấy sẽ nhận được rất nhiều trợ giúp từ rất thân thiện và đáp ứng mailing list.

Dưới đây là hoàn toàn tương đương với web2py làm việc của ứng dụng Flask @ Máy xay sinh tố (mặc dù phiên bản này bổ sung thêm một bố cục mặc định tốt đẹp với một thực đơn cũng như hỗ trợ quốc tế hóa để dịch 'Hello' message):

File:default.py

def index(): 
    return dict(message=T('Hello')) 

file:index.html

{{extend 'layout.html' # optional}} 
{{if message != 'nope':}} 
{{=message}} 
{{pass}} 
Các vấn đề liên quan