Goodmorning people,
I'm teaching myself web2py and I've a little question for understanding how 
can i do ...

I've a form (becomes from a table) with an upload field
i would to upload an html file and I would to parse it in the mean time .. 
or just after the completition of the operation...

eg.: after i've clicked on the submit button so i would import the file and 
after the parsing filling a new table with the results of the html parse 
operation.

my table :

db.define_table("files",
                Field("name", unique=True),
                Field('country', requires=IS_IN_DB(db, 
'country.printable_name')),
                Field("files", "upload", custom_store=store_file, 
custom_retrieve=retrieve_file)
                )

I used (thanks to web2py group experts) these two function for storing and 
renaming the file uploaded :

def store_file(file, filename=None, path=None):
    path = "applications/myappuploads"
    if not os.path.exists(path):
         os.makedirs(path)
    pathfilename = os.path.join(path, filename)
    dest_file = open(pathfilename, 'wb')
    try:
            shutil.copyfileobj(file, dest_file)
    finally:
            dest_file.close()
    return filename

def retrieve_file(filename, path=None):
    path = "applications/myapp/uploads"
    return (filename, open(os.path.join(path, filename), 'rb')) 

after I've connected in my display_form()  all the things ...

def display_form():
    if len(request.args):
        form=SQLFORM(db.files, request.args[0], upload=URL("download"))
    else:
        form=SQLFORM(db.files, upload=URL("download"))
    txt_content=[]
    if form.process(onvalidation=validate).accepted:
        content=StringIO.StringIO(data)
        msg = process_file(content)
        response.flash = T(msg)
    elif form.errors:
        response.flash = T('some errors occurred')
    else:
pass
    return {"form":form}

I validate the uploaded file giving the name that i've put in the field 
"name"

def validate(form):
    if form.vars.files is not None:
        form.vars.files.filename = form.vars.name + ".html"

and my process_file is : 

def process_file(content):
    all_lines = content
    msg = 'content not processed'
    for line in all_lines:
        try:
            msg = 'processed succesfully'
        except:
            msg = 'error processing'
    return msg

here i've my problems .... in which way I can parse the html file, with 
which html parser ?

Thank you in advance 
Luca


-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to