Re: String Literal to Blob

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Steve Holden

    Re: String Literal to Blob

    Victor Subervi wrote:
    in line...
    >
    On Fri, Apr 11, 2008 at 2:05 PM, Steve Holden <steve@holdenwe b.com
    <mailto:steve@h oldenweb.com>wr ote:
    >
    Victor Subervi wrote:
    I have worked on this many hours a day for two weeks. If there is an
    easier way to do it, just take a minute or two and point it out. Have
    you heard of the Law of Diminishing Returns? I have passed it
    long ago.
    I no longer want to waste time trying to guess at what you are
    trying to
    tell me.
    Victor
    >
    On Fri, Apr 11, 2008 at 8:55 AM, Steve Holden
    <steve@holdenwe b.com <mailto:steve@h oldenweb.com>
    <mailto:steve@h oldenweb.com <mailto:steve@h oldenweb.com>>w rote:
    Where you have
    >
    content = col_fields[0][14].tostring()
    pic = "tmp" + str(i) + ".jpg"
    img = open(pic, "w")
    img.write(conte nt)
    print '<img src="%s"><br /><br />' % pic
    img.close()
    >
    instead write
    >
    print content
    >
    >
    Like this, I presume?
    >
    Yes. You might need to use content.tostrin g() - I am not familiar with
    MySQL blobs.
    img = open(pic, "w")
    img.write(conte nt)
    print '<td><input type="hidden" name="%s"' % str(x), '
    value="%s">' % pic
    print content
    # print '<img src="%s"><br /><br /></td>\n' % pic
    Does not work _at_all LOL. You will recall, also, that you once gave me
    a line similar to the one commented out (but without writing then
    opening the file). THAT did not work, either. So now do you see why I am
    frustrated??
    >
    >
    >
    Then browse to the URL this program serves and you will see the image
    (assuming you are still sending the image/jpeg content type).
    >
    >
    Well, as I mentioned before, I am sending text/html because the page,
    like almost all web pages, has a whole lot more content than just
    images. Or, perhaps you are suggesting I build my pages in frames, and
    have a frame for every image. Unsightly!
    >
    Dear Victor:

    If you cannot understand, after being told several times by different
    people, that pages with images in them are achieved by multiple HTTP
    requests, then there is little I can do to help you.
    >
    Once you
    can see the image, THEN you can write a page that refers to it. Until
    you start serving the image (NOT pseudo-html with image data embedded in
    it) nothing else will work.
    >
    >
    My solution works just fine, thank you. It is inelegant. But it now
    appears to me, and I dare say rather clearly, that this inelegance is
    the fault of python itself. Perhaps this should be brought to Guido´s
    attention.
    Victor
    You can say it as clearly as you like, but if you say it too loudly you
    will make a laughing stock of yourself.

    You surely don't think that a language that supports Zope, TurboGears,
    Pylons and Django (to name but the first four that come to mind) is
    unsuitable for web programming?

    Please, do yourself a big favor and persist with this until you
    understand what you are doing wrong and how to serve dynamic images. It
    appears that the learning may be painful, but I guarantee it will be
    worthwhile.

    regards
    Steve
    --
    Steve Holden +1 571 484 6266 +1 800 494 3119
    Holden Web LLC http://www.holdenweb.com/
  • Jason Scheirer

    #2
    Re: String Literal to Blob

    On Apr 12, 2:44 pm, Steve Holden <st...@holdenwe b.comwrote:
    Victor Subervi wrote:
    in line...
    >
    On Fri, Apr 11, 2008 at 2:05 PM, Steve Holden <st...@holdenwe b.com
    <mailto:st...@h oldenweb.com>wr ote:
    >
    Victor Subervi wrote:
    I have worked on this many hours a day for two weeks. If there isan
    easier way to do it, just take a minute or two and point it out. Have
    you heard of the Law of Diminishing Returns? I have passed it
    long ago.
    I no longer want to waste time trying to guess at what you are
    trying to
    tell me.
    Victor
    >
    On Fri, Apr 11, 2008 at 8:55 AM, Steve Holden
    <st...@holdenwe b.com <mailto:st...@h oldenweb.com>
    <mailto:st...@h oldenweb.com <mailto:st...@h oldenweb.com>>w rote:
    Where you have
    >
    content = col_fields[0][14].tostring()
    pic = "tmp" + str(i) + ".jpg"
    img = open(pic, "w")
    img.write(conte nt)
    print '<img src="%s"><br /><br />' % pic
    img.close()
    >
    instead write
    >
    print content
    >
    Like this, I presume?
    >
    Yes. You might need to use content.tostrin g() - I am not familiar with
    MySQL blobs.
    >
    img = open(pic, "w")
    img.write(conte nt)
    print '<td><input type="hidden" name="%s"' % str(x), '
    value="%s">' % pic
    print content
    # print '<img src="%s"><br /><br /></td>\n' % pic
    Does not work _at_all LOL. You will recall, also, that you once gave me
    a line similar to the one commented out (but without writing then
    opening the file). THAT did not work, either. So now do you see why I am
    frustrated??
    >
    Then browse to the URL this program serves and you will see the image
    (assuming you are still sending the image/jpeg content type).
    >
    Well, as I mentioned before, I am sending text/html because the page,
    like almost all web pages, has a whole lot more content than just
    images. Or, perhaps you are suggesting I build my pages in frames, and
    have a frame for every image. Unsightly!
    >
    Dear Victor:
    >
    If you cannot understand, after being told several times by different
    people, that pages with images in them are achieved by multiple HTTP
    requests, then there is little I can do to help you.
    >
    >
    >
    Once you
    can see the image, THEN you can write a page that refers to it. Until
    you start serving the image (NOT pseudo-html with image data embedded in
    it) nothing else will work.
    >
    My solution works just fine, thank you. It is inelegant. But it now
    appears to me, and I dare say rather clearly, that this inelegance is
    the fault of python itself. Perhaps this should be brought to Guido´s
    attention.
    Victor
    >
    You can say it as clearly as you like, but if you say it too loudly you
    will make a laughing stock of yourself.
    >
    You surely don't think that a language that supports Zope, TurboGears,
    Pylons and Django (to name but the first four that come to mind) is
    unsuitable for web programming?
    >
    Please, do yourself a big favor and persist with this until you
    understand what you are doing wrong and how to serve dynamic images. It
    appears that the learning may be painful, but I guarantee it will be
    worthwhile.
    >
    regards
    Steve
    --
    Steve Holden +1 571 484 6266 +1 800 494 3119
    Holden Web LLC http://www.holdenweb.com/
    There _is_ a way to embed image data in HTML that is supported by
    every major browser. It is ugly. Using the RFC 2397 (http://
    www.ietf.org/rfc/rfc2397) spec for data URLs you could go

    '<img src="data:image/jpg;base64,%s"> ' % base64.b64encod e(image_data)

    Obviously you need to import the base64 module somewhere in your code
    and base64-encoded data is about a third larger than it would be
    otherwise, so embedding anything particularly large is going to be a
    huge pain and affect page load times pretty badly.

    Comment

    • Gabriel Genellina

      #3
      Re: String Literal to Blob

      En Sat, 12 Apr 2008 22:14:31 -0300, Jason Scheirer
      <jason.scheirer @gmail.comescri bió:
      On Apr 12, 2:44 pm, Steve Holden <st...@holdenwe b.comwrote:
      >Victor Subervi wrote:
      Well, as I mentioned before, I am sending text/html because the page,
      like almost all web pages, has a whole lot more content than just
      images. Or, perhaps you are suggesting I build my pages in frames, and
      have a frame for every image. Unsightly!
      >>
      >Dear Victor:
      >>
      >If you cannot understand, after being told several times by different
      >people, that pages with images in them are achieved by multiple HTTP
      >requests, then there is little I can do to help you.
      >[...]
      >Please, do yourself a big favor and persist with this until you
      >understand what you are doing wrong and how to serve dynamic images. It
      >appears that the learning may be painful, but I guarantee it will be
      >worthwhile.
      >
      There _is_ a way to embed image data in HTML that is supported by
      every major browser. It is ugly. Using the RFC 2397 (http://
      www.ietf.org/rfc/rfc2397) spec for data URLs you could go
      >
      '<img src="data:image/jpg;base64,%s"> ' % base64.b64encod e(image_data)
      Another alternative would be to generate a multipart/related document, but
      I think the OP will gain a lot more understanding the simple cases than
      using those esoteric features.

      --
      Gabriel Genellina

      Comment

      • Gabriel Genellina

        #4
        Re: String Literal to Blob

        En Sat, 12 Apr 2008 22:14:31 -0300, Jason Scheirer
        <jason.scheirer @gmail.comescri bió:
        On Apr 12, 2:44 pm, Steve Holden <st...@holdenwe b.comwrote:
        >Victor Subervi wrote:
        Well, as I mentioned before, I am sending text/html because the page,
        like almost all web pages, has a whole lot more content than just
        images. Or, perhaps you are suggesting I build my pages in frames, and
        have a frame for every image. Unsightly!
        >>
        >Dear Victor:
        >>
        >If you cannot understand, after being told several times by different
        >people, that pages with images in them are achieved by multiple HTTP
        >requests, then there is little I can do to help you.
        >[...]
        >Please, do yourself a big favor and persist with this until you
        >understand what you are doing wrong and how to serve dynamic images. It
        >appears that the learning may be painful, but I guarantee it will be
        >worthwhile.
        >
        There _is_ a way to embed image data in HTML that is supported by
        every major browser. It is ugly. Using the RFC 2397 (http://
        www.ietf.org/rfc/rfc2397) spec for data URLs you could go
        >
        '<img src="data:image/jpg;base64,%s"> ' % base64.b64encod e(image_data)
        Another alternative would be to generate a multipart/related document, but
        I think the OP will gain a lot more understanding the simple cases than
        using those esoteric features.

        --
        Gabriel Genellina

        Comment

        • Steve Holden

          #5
          Re: String Literal to Blob

          Jason Scheirer wrote:
          [...]
          >
          There _is_ a way to embed image data in HTML that is supported by
          every major browser. It is ugly. Using the RFC 2397 (http://
          www.ietf.org/rfc/rfc2397) spec for data URLs you could go
          >
          '<img src="data:image/jpg;base64,%s"> ' % base64.b64encod e(image_data)
          >
          Obviously you need to import the base64 module somewhere in your code
          and base64-encoded data is about a third larger than it would be
          otherwise, so embedding anything particularly large is going to be a
          huge pain and affect page load times pretty badly.
          This is hardly likely to help someone who hasn't yet grasped the concept
          of referencing graphics and prefers to write database output to disk to
          serve it statically. But who knows, maybe it will ...

          regards
          Steve
          --
          Steve Holden +1 571 484 6266 +1 800 494 3119
          Holden Web LLC http://www.holdenweb.com/

          Comment

          • Steve Holden

            #6
            Re: String Literal to Blob

            Victor Subervi wrote:
            Thanks to all, especially Gabriel. The base64 is a good idea, but you
            state a definite problem. I will look at your code at home
            (offline)...tha nk you very much! It looks like the kicker is this line here:
            >
            <img src='getpic.py? id=%d' alt='%s'>" % (picid, cgi.escape(titl e))
            >
            Now, why didn´t you share that before????? I can see how calling a
            separate script like that would work! Again, you should have shared that
            before. How was I to think of that clever trick from the bare
            information you gave me earlier??
            >
            Steve, thank you for all your help, but do overcome your temper :))
            Victor:

            I'm glad the penny finally dropped. You may have been treated to a
            modest display of exasperation, but please be assured you have not yet
            seen anything remotely like temper from me :-)

            The thing I found difficult to understand was, given your assertion on
            April 9 "But I am persistent. And I have built dozens of Web site with
            images" that you hadn't already addressed these issues. I was clearly
            assuming too much knowledge on your part.

            Hooray! You got it! Your persistence finally paid off, well done!

            regards
            Steve
            --
            Steve Holden +1 571 484 6266 +1 800 494 3119
            Holden Web LLC http://www.holdenweb.com/

            Comment

            • Gabriel Genellina

              #7
              Re: String Literal to Blob

              En Mon, 14 Apr 2008 11:03:54 -0300, Steve Holden <steve@holdenwe b.com>
              escribió:
              Victor Subervi wrote:
              >Thanks to all, especially Gabriel. [...]
              >Steve, thank you for all your help, but do overcome your temper :))
              >
              I'm glad the penny finally dropped. You may have been treated to a
              modest display of exasperation, but please be assured you have not yet
              seen anything remotely like temper from me :-)
              And I'm glad to see that you finally "got it", too!

              --
              Gabriel Genellina

              Comment

              • J. Cliff Dyer

                #8
                Re: String Literal to Blob

                It is published. On comp.lang.pytho n. Google groups has it, so google
                (search) will find it.

                Cheers,
                Cliff


                On Tue, 2008-04-15 at 17:04 +0200, Victor Subervi wrote:
                Gabriel;
                >
                That's really nice code you wrote. I will rewrite my app accordingly,
                after I catch a breather! Say, would you please publish this
                somewhere? Why should I write a howto on this and credit you when all
                I would be doing is republishing (plagerizing) what you published?
                Please insert these keywords: mysql, image, python, mysqldb and maybe
                picture and photo (you already have photo). Call it something like
                "MySQL/Python Tutorial for Posting and Retrieving Images / Photo
                Album". I ask you to do this because I scoured google looking for just
                what you've provided and it simply isn't out there. At all. There are
                nice howto's in php. Please post this for those interested in python,
                somewhere like the cookbook.
                >
                Thanks,
                >
                Victor
                >
                >
                >
                On Tue, Apr 15, 2008 at 3:23 AM, Gabriel Genellina
                <gagsl-py2@yahoo.com.a rwrote:
                En Mon, 14 Apr 2008 11:03:54 -0300, Steve Holden
                <steve@holdenwe b.com>
                escribió:
                Victor Subervi wrote:
                >Thanks to all, especially Gabriel. [...]
                >Steve, thank you for all your help, but do overcome your
                temper :))
                >
                >
                I'm glad the penny finally dropped. You may have been
                treated to a
                modest display of exasperation, but please be assured you
                have not yet
                seen anything remotely like temper from me :-)
                >
                >
                And I'm glad to see that you finally "got it", too!
                >
                --
                Gabriel Genellina
                >
                --
                >

                >
                >
                --
                Oook,
                J. Cliff Dyer
                Carolina Digital Library and Archives
                UNC Chapel Hill

                Comment

                Working...