cherrypyचेरी से शुरुआत की


टिप्पणियों

यह अनुभाग इस बात का अवलोकन प्रदान करता है कि चेरी क्या है, और क्यों एक डेवलपर इसका उपयोग करना चाहता है।

यह भी चेरी के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि चेरी के लिए दस्तावेज़ीकरण नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।

स्थापाना निर्देश

पूर्व शर्त

  • मान लीजिए कि आपके पास किसी भी प्रकार का लिनक्स, यूनिक्स, मैक विद बैश या गिट-बैश विंडोज है।
  • विंडोज: विंडोज के लिए गिट-बैश डाउनलोड और इंस्टॉल करें, फिर कमांड लाइन से 'बैश' को निष्पादित करें।
  • बैश अलावा गोले भी ठीक हैं, बस की जगह activate साथ नीचे आदेश activate.csh या गूगल: " virtualenv अपने-खोल-नाम को सक्रिय "।

शुरू करने से पहले, जाँच लें कि पायथन, virtualenv और पाइप स्थापित हैं:

  • $ python --version
  • $ virtualenv --version
  • $ pip --version

इंस्टॉल

अपने वेब / ऐप के साथ एक निर्देशिका बनाएं, वातावरण बनाएं और चेरीप पैकेज स्थापित करें।

  • $ mkdir /develop/myapp/
  • $ cd /develop/myapp/
  • $ virtualenv venv
  • $ source venv/bin/activate
    • Git-bash में विंडोज पर: $ source venv/Scripts/activate
  • (venv) $ pip install cherrypy
  • (venv) $ python
Python 3.5.2 ...
>>> import cherrypy
>>> cherrypy
<module 'cherrypy' from '... venv/site-packages/cherrypy/__init__.py'>
 

बधाई हो! अब आप अपने पहले चेरी आवेदन के लिए तैयार हैं।

चेरीपी के साथ फाइल अपलोड

इस उदाहरण में तीन भाग हैं:

  • server.py - CherryPy एप्लिकेशन जो एक फ़ाइल को प्राप्त और सहेज सकता है।
  • webpage.html - उदाहरण के लिए एक वेबपेज से server.py फ़ाइल अपलोड करने का तरीका।
  • cli.py - उदाहरण के लिए कमांड लाइन टूल से cli.py फ़ाइल कैसे अपलोड करें।
  • बोनस - upload.txt - वह फ़ाइल जिसे आप अपलोड करेंगे।

server.py

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import os
import cherrypy

config = {
    'global' : {
        'server.socket_host' : '127.0.0.1',
        'server.socket_port' : 8080
    }
}


class App:

    @cherrypy.expose
    def upload(self, ufile):
        # Either save the file to the directory where server.py is
        # or save the file to a given path:
        # upload_path = '/path/to/project/data/'
        upload_path = os.path.dirname(__file__)

        # Save the file to a predefined filename
        # or use the filename sent by the client:
        # upload_filename = ufile.filename
        upload_filename = 'saved.txt'

        upload_file = os.path.normpath(
            os.path.join(upload_path, upload_filename))
        size = 0
        with open(upload_file, 'wb') as out:
            while True:
                data = ufile.file.read(8192)
                if not data:
                    break
                out.write(data)
                size += len(data)
        out = '''
File received.
Filename: {}
Length: {}
Mime-type: {}
''' .format(ufile.filename, size, ufile.content_type, data)
        return out


if __name__ == '__main__':
    cherrypy.quickstart(App(), '/', config)
 

webpage.html

<form method="post" action="http://127.0.0.1:8080/upload" enctype="multipart/form-data">
    <input type="file" name="ufile" />
    <input type="submit" />
</form>
 

cli.py

इस उदाहरण के लिए पायथन अनुरोध पैकेज की आवश्यकता होती है, हालाँकि फ़ाइल को सादे पायथन में सर्वर को भेजा जा सकता है।

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import requests

url = 'http://127.0.0.1:8080/upload'
files = {'ufile': open('file.txt', 'rb')}

r = requests.post(url, files=files)

print(r)
print(r.text)
 

upload.txt

Hello! This file was uploaded to CherryPy.
 

ब्राउज़र से अपलोड करें

  • $ server.py चलाएं
  • अपने वेब ब्राउज़र में webpage.html खोलें।
  • आपके द्वारा अपनी ड्राइव से फ़ाइल चुनने और सबमिट करने के बाद, इसे saved.txt रूप में सहेजा जाएगा।

कमांड लाइन से अपलोड करें

  • एक कंसोल खोलें और $ server.py चलाएँ
  • एक और कंसोल खोलें और $ cli.py
    • नोट: टेस्ट फ़ाइल upload.txt के साथ एक ही निर्देशिका में होना चाहिए cli.py
  • फ़ाइल upload.txt को अपलोड किया जाना चाहिए और saved.txt रूप में सहेजा जाना चाहिए।

हेल्लो दुनिया चेरीपी में

यदि आपके पास एक वर्चुअन है और उसमें चेरीपाइ पहले से इंस्टॉल है, तो एक फाइल hello.py "

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import cherrypy

class HelloWorld(object):
    @cherrypy.expose
    def index(self):
        return 'Hello World!'

    @cherrypy.expose
    def greet(self, name):
        return 'Hello {}!'.format(name)

cherrypy.quickstart(HelloWorld())
 

फिर फ़ाइल निष्पादित करें: $ hello.py या $ python hello.py । आपको इसके समान आउटपुट देखना चाहिए:

user@computer /develop/myapp $ python hello.py
[06/Nov/2016:05:58:44] ENGINE Listening for SIGTERM.
[06/Nov/2016:05:58:44] ENGINE Bus STARTING
[06/Nov/2016:05:58:44] ENGINE Set handler for console events.
CherryPy Checker:
The Application mounted at '' has an empty config.

[06/Nov/2016:05:58:44] ENGINE Started monitor thread '_TimeoutMonitor'.
[06/Nov/2016:05:58:44] ENGINE Started monitor thread 'Autoreloader'.
[06/Nov/2016:05:58:45] ENGINE Serving on http://127.0.0.1:8080
[06/Nov/2016:05:58:45] ENGINE Bus STARTED