thanks- i'll check out elixer
i was playing with sqlautocode but it had too many issues with my db
i'm offloading some stuff for a mod_perl + php + raw python app into
pylons. postgres has 273 tables. i think i need about 50 min in
pylons -- and I want to automate as much of the
the app that I'm working on has some constraints that are implemented
under mod_perl , php python.
i'm trying to figure out how to do this in pylons/sa -- hoping some
people can point me in the right direction
basically, I use 5 database connections -- each with different
permissions / roles
Mike-
Thanks for the feedback , and the great tutorial -- i had actually
used it as a reference when playing around with reflection.
I have a few questions left...
You can define all tables in a single metadata unless you're doing something
really wacky.
ha. ok.
1) Don't bind any
this is straightforward:
i- if i call /:controller/:action and :action is undefined, i get
type 'exceptions.NotImplementedError': Action u'abcdefg' is not
implemented
How do i push things like that to a 404 instead? I can't find that
in the docs.
ii- semi related -- shouldn't
On Mar 4, 5:12 pm, mat [EMAIL PROTECTED] wrote:
Your don't, your getting this because your in debug mode.
Setting debug = false will stop the ErrorHandler middleware helping
you and return 404.
oh great! thanks!
I'm not sure i get your self.view here. I'm not aware controllers have
view
If your real question is, How do I configure routing for the home
page?, you define a route with path ''.
If you're wondering how to structure your application, give us a bit
more information about your planned URLs and pages, and we can help
with the routing and actions.
I was just
My formencode validators keep tossing back:
- Value must be one of: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12 (not
u'1')
How do i get formencode to handle utf8, or convert utf8 to ascii. i
don't care which right now, i just want to move forward a bit
I quickly ported my Perl system for this, a little messy/unstructured
- but if someone wants to take from there, sweet.
in app_globals you define a regex series for valid referers
in controllers you just add
require_local_referer= True
which pulls the __before__ method, or call
To elaborate, I figured out this is because of a string/int
comparison:
my valid info is:
days= range(1,31)
formencode doesn't like that. it works if i do:
days= [%s%i for i in range(1,31) ]
does anyone have a method of allowing string/int type comparisons
using formencode? or do i need
there are a few more things i can't figure out.
assuming I have in my controller:
class Form_Register(formencode.Schema):
us_state=
formencode.validators.OneOf(g.us_states.keys(),hideList=True)
and in my template:
${h.select('us_state',
I made a FormValidator subclass called DatefieldsValidator (below) ,
which validates a day/month/year field
how should I push errors from there into the template ? can helpers
be used?
---
class DatefieldsValidator(formencode.validators.FormValidator):
Checks if a date is valid
On Mar 23, 4:57 pm, Wichert Akkerman [EMAIL PROTECTED] wrote:
At the moment you get all four in one decorator. If you want a subset of
them you have to code the whole thing yourself. I'm not sure what the
best way to make that more modular - we don't want to make the common
case more
is there a way to test if a url is valid , or where it maps to?
i can't find that within the pylons code
use case:
i'm locking a project down to 'preview', and want to redirect
uncookied users to '/preview/%(original_request)' if that is a valid
url, and /preview otherwise.
On Mar 23, 10:32 pm, Ian Bicking [EMAIL PROTECTED] wrote:
These can't be that hard, can they? If they are hard, then we could
push a little something back into FormEncode, I suppose. If these are
easy, then not using @validate should be easy, as it's the second two
items that I think
On Mar 23, 8:56 pm, Mike Orr [EMAIL PROTECTED] wrote:
You can check if there's a valid route by getting the routemapper out
of the environ and trying to match it, but that won't tell you whether
the controller and action exist. You'd have to duplicate Pylons'
dispatching code to do that.
On Mar 23, 11:31 pm, Mike Orr [EMAIL PROTECTED] wrote:
Why? It seems intuitive to me. The first request doesn't know what
the URL is but it knows the user shouldn't be going out of the preview
section.
The first request should be able to decide if it will redirect to an
error, or a
i'm trying, without any luck, to fill a form with default values
in my application we have
---
class Form:
basic form validation
pass
class Controller:
def index(self):
print form
@validator
def submit(self):
some advanced validation that is not appropriate
i'm working on a building a framework of common social networking
features for several pylons apps to subclass/inherit from
an issue that I'm running into, is that I need to access/import some
things not from pylons, but from the app itself
instead of doing
from ..lib import helpers as
I'm a little unclear on your goals, so the answer is yes and not
really. ;)
This refactoring will let the form validate as a decorator, and then
allow you to cause an error within your pylons function
@validate( blah )
def stuff( self ):
# yay, form is valid
if not
That solves another problem we have: how to trigger a form error in
the action after the validator has passed.
exactly. that's been my motivation.
Normally you don't want to decorators in non-decorator situations, so
you'd need another function for this.
yeah... i might take a stab at
Mike-
Any comments on this:
http://pylonshq.com/pasties/775
sorry i killed the docstrings on that ;)
now you can call
validate_form( self, @validate args )
which returns true/false on form validation
the main thing i don't like about my refactoring: it's using some
caching to preserve
Cookbooked:
http://wiki.pylonshq.com/display/pylonscookbook/Hacking+validate+into+a+split+functionality
I did some 'namespace' caching to add rudimentary support for multiple
forms, and defaulting to the 'last form'. i'm not sure if its
necessary, but i like things to be extensible.
if
Django has a neat middleware component
http://www.djangoproject.com/documentation/csrf/
has anyone thought of porting this to pylons?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post
ben-
the secure_form validator sounds perfect. thanks for the heads up.
i think i'm going to play with some post-processing to enable
secure_form though post-processing.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
The second question is, why do you want to protect them? If you're
trying to prevent unauthorized users from accessing them, protection
makes sense. But if you want to force authorized users to view them
only embedded in an HTML page rather than directly -- you can't. If
the browser can
for their digital efforts.
Best,
// Jonathan Vanasco
w. http://findmeon.com/user/jvanasco
e. [EMAIL PROTECTED]
| Founder/CEO - FindMeOn, Inc.
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
| FindMeOn.com - The cure for Multiple Web
I don't see why you need to integrate with sqlalchemy at all though
Something that I would like to see is to see good support defaults
In my mind, defaults come from 2 places:
a- validated get/post data that is redisplayed
b- application generated info ( db pull? )
right now, its a major PITA
On Apr 28, 1:59 am, Ben Bangert [EMAIL PROTECTED] wrote:
What's the other exception that is occurring?
type 'exceptions.AttributeError': 'module' object has no attribute
'userInfo'
happens if you have a pickled object (in my case, a simple object
called userInfo ) in your session, but change
On Apr 29, 12:38 am, Mike Orr [EMAIL PROTECTED] wrote:
On Mon, Apr 28, 2008 at 6:19 PM, jerry [EMAIL PROTECTED] wrote:
Is there a way to construct URLs like /controller/action/id?
q=1q=2 with url_for()?
I don't think so. If there's demand for this we can turn a list of
values into
because i won't know the name of appconfig.py
i'm creating a subclassable framework for distribution
DerivedApp/
DerivedApp/model
BaseApp/
BaseApp/lib/helpers
I'm trying to get the BaseApp/lib/helpers to access Globals, so that
it can access objects in DerivedApp/model (which might have
actually, i like the notion of options_for_select supporting a none
option
i'd like to see that supported at some time.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post to this group,
my DerivedApp/model is a subclass of BaseApp/model , etc etc
i've got helpers working as you suggested too
the issue i was hitting, is that in the BaseApp/helpers i'm trying to
create a function that interacts with DerivedApp/Model
i got around it by just passing in model, this will work for
as for the improvement I have to disagree TG1 gives you more than
pylons in fact pylons is like a barebone TG.
To many of us, that IS the huge improvement ;)
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
is anyone working on building this into pylons?
i haven't see it talked about on the list for almost 1 full year
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post to this group, send
http://demo.script.aculo.us/ajax/autocompleter_customized
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from
Thanks for all the links. I will check out those attempts. I figured
it would be 'built in' at some point, because i hear they do it in
other frameworks.
On a semi-related note does anyone have a resource for a good way to
do one of those ajax checks to see if a username is already in use as
i do something similar to get the recaptcha client to work (the
installer is broken) along with some other modules
my solution is this:
1_ I have an 'externals' dir in lib
/myapp/lib/externals/recaptcha
2_ at the top config/environment.py i have
import sys
appdir= sys.path[0]
appexternals=
I'm a little unclear on the better ways to deploy a Pylons app.
My production servers run nginx -- is it better to use some fastcgi
support (if so, how?) or just do a paster serve and proxy to that
port?
I've read a handful of ways on how-to-deploy apps, and all seem
different. I've yet to see
i'm not sure if this is the same...
i often do stuff like this:
class coreObjectController:
def do_stuff():
Session.query( self.model_object ).blach
def do_more():
pass
class aCrontroller( coreObjectController ):
self. model_object = class_a
class bCrontroller( coreObjectController ):
select() now handles int values and implicitly converts them to
strings for HTML. This allows you to link a select pulldown to an int
database value, and to use ints in your options lists. Thanks to
Christoph Haas for this patch, which helps my applications too.
neat!
is there a
so is Apache considered to be a good thing (through mod_wsgi ,
mod_python , or other ?)
i've been doing mod_perl dev for years, and have had some experience
with mod_python -- generally speaking, my experience is that if you
can avoid apache you're better off. i guess that's what is throwing
me
On May 20, 1:33 am, Mike Orr [EMAIL PROTECTED] wrote:
People say it also has a better knowledge of the quirky
useragents out there and can correct misformed requests better than
just exposing PasteHTTPServer or CherryPy directly, though I don't
know how true it is.
That's pretty much true.
On May 20, 9:13 pm, Graham Dumpleton [EMAIL PROTECTED]
wrote:
Also see my comments in other post, but when you say 'proxy' I hope
you don't really mean 'proxy'.
I wrote 'proyxing' when I meant 'pushing'
Let me rephrase...
In my standard setups,
nginx on port 80
maps static content
On May 20, 4:33 pm, Mike Orr [EMAIL PROTECTED] wrote:
each, 100,000 requests/day is not that many. That's 4166/hour or
70/minute. Any non-anemic server can do that in its sleep. Our
server has two sites each doing more than that several times a day,
plus three smaller sites.
when you
On May 21, 4:09 am, Mike Orr [EMAIL PROTECTED] wrote:
On Tue, May 20, 2008 at 11:54 PM, Jonathan Vanasco
Well, for a Pylons site with Postgres that wants to be scalable up
front, a three-server setup makes sense. One for the Pylons app, one
for the static content, and one for the database
On May 20, 8:48 pm, Graham Dumpleton [EMAIL PROTECTED]
wrote:
Using mod_perl as an indicator is actually a bad idea. This is because
it tends to be the worst of the bunch when it comes to bloating out
Apache. Thus saying that all solutions which embed an interpreter in
Apache are bad based
On May 21, 12:49 pm, Mike Orr [EMAIL PROTECTED] wrote:
He did say scalable and video, which I took to mean ultra-heavy use of
very large files, and overkill didn't matter. The disk space alone is
one reason why static content might want to be on a separate box, so
it can be plugged into a
On May 21, 6:06 pm, Mike Orr [EMAIL PROTECTED] wrote:
The only noise was about whether Apache is too bloated for its own
good, and whether Nginx is better than everything else. But knowing
what other Pylons sysadmins think of the merits of each is still
worthwhile, even though we don't want
On May 22, 4:20 am, Alberto Valverde [EMAIL PROTECTED] wrote:
The reason I use it over paster+supervisord is because I find it *much*
easier to set up and maintain and more powerful (mod_wsgi can be
configured to spawn wsgi applications into separate processes under
their own user/group,
On May 22, 3:43 am, Cliff Wells [EMAIL PROTECTED] wrote:
Again, I think this contrast is artificial. You are setting up vertical
scaling and horizontal scaling as mutually exclusive when they are
anything but, and unless you have endlessly deep pockets, you should
prefer to control the
On May 23, 3:48 pm, Mike Orr [EMAIL PROTECTED] wrote:
This is quite interesting. I've been looking for a way to build a
site scraper (something analogous to an aggregator but more
site-specific) that could eventually become asynchronous, and this
looks a lot easier than Twisted.
I *really* like how the modular approach can compartmentalize the
necessary templates and controllers.
I intensely dislike how the modular approach compartmentalizes the
routing and model. If something is affecting the routing model,
IMHO, it's not a plugin - its a standalone app.
At
On May 24, 5:10 am, Shannon -jj Behrens [EMAIL PROTECTED] wrote:
Bob Ippolito was telling me once that he took a server in Twisted and
rewrote it in stackless. He got some performance gains, but then he
rewrote it in Erlang. It dropped from 40% CPU utilization to almost
nothing, and it was
On May 22, 6:07 pm, Shannon -jj Behrens [EMAIL PROTECTED] wrote:
Ben Bangert and I decided to meet for dinner in Berkeley. I got very
lost and ended up in Oakland. I finally got to the restaurant an hour
late. Ben had already eaten. We had a good talk about Web
development. He told me
Thanks!
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For
have you been profiling your db at all?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send
On May 28, 5:24 pm, SamDonaldson [EMAIL PROTECTED] wrote:
Yes, we've profiled the db. Are you asking because of the concern
over failed requests in the ab benchmark test?
1- The first bottleneck anyone hits is the usually the DB
2- You can get some idea of how connection pooling is working
On May 28, 6:12 pm, SamDonaldson [EMAIL PROTECTED] wrote:
Should I make the switch to nginx as it
seems like everybody has something good to say about nginx, and it's a
good load balancer.
I'm biased against lighttpd from experience 2 years ago, so won't
comment.
I will say that it would be
On May 29, 8:07 am, Alberto Valverde [EMAIL PROTECTED] wrote:
Perhaps a trip to archives [1] to refresh your memory on the tone of some
of your posts can shed a light on the reason you felt treated in this way
by TG's dev. community.
Perhaps my tone got increasingly negative as a response to
On May 29, 10:56 pm, Mike Orr [EMAIL PROTECTED] wrote:
That's akin to the user pressing the Stop button in the browser. I
get a connection reset line for that in my Quixote apps but not in
my Pylons app. I assumed Pylons just ignored the exceptions because
it's not really an error if the
going off topic for a bit...
i just realized that a bottleneck on one of systems was from a typo
-- I was setting a DB rollback on the wrong database handle ( read
instead of config ). that caused an series of 'In Transaction'
database blocks that would not seem to cause any issue... until i
On May 30, 2:19 pm, Shannon -jj Behrens [EMAIL PROTECTED] wrote:
* ab is a bit simple minded to begin with. I've told it to use 100
concurrent requests (which I saw that you didn't do), and it saw all
sorts of failed connections. Of course, getting 100 *concurrent*
requests isn't all that
I'm prepping some software for release as a 'platform', and realized
that it might seem to better suit our purposes if we re-implmented a c
and g as our own vars, instead of creating a new namespace within
each. I'd like to explore/test this approach.
According to pylons/__init__.py , they're
Your words are gold.
Thank you!
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email
interesting decision on the change.
In a Perl framework I once built, we approached this a little
differently
1. a var was set on app startup to set the render function's default
behavior
2. the render() function took a keyword argument to dispatch to
another function
that worked really well
On Jun 11, 10:09 pm, Mike Orr [EMAIL PROTECTED] wrote:
Dispatch to another function via a keyword argument? I'm not sure
what that means.
That means...
The render function takes an engine name or uses
the default engine, and invokes the corresponding plugin.
which is where my confusion
one of the things i HATE about mysql, is the 5.0 branch , nothing
failed. they specifically wanted everything to go though, and valued
that behavior over integrity.
in terms of what happens when something does fail now? I'm pretty
sure the mysql and postgres docs have workarounds/solutions for
On Jun 12, 6:22 pm, ionel [EMAIL PROTECTED] wrote:
this is an ab bug actually,
see:https://issues.apache.org/bugzilla/show_bug.cgi?id=21495
you might want to update ab or use httperf for benchmarking
I thought that ab might be at fault, but the website was unreachable
by other means too.
Mike has been talking about the impending deprecations, so I read
though everything on the wiki... and then this posting from january
http://groups.google.com/group/pylons-discuss/browse_thread/thread/256bbefedc07d218/64c3a274e7b03122
I'm a little less-than-enthusiastic to see some of this
i do this:
server {
listen 80;
server_name
myapp.com
www.myapp.com
;
access_log /var/log/nginx/myapp/myapp.com-access.log main;
error_log /var/log/nginx/myapp/myapp.com-error.log ;
location ~ ^/(_img|_css|_js) {
include
create your own url_for function in helpers, and just wrap url_for
with it.
ie:
lib/helpers
def custom_url_for( name ):
domain = getDomain
if domain == 'a':
return '%s/%s' % ( url_for(name) , 'a' )
elif domain == 'b':
return '%s/%s' % ( url_for(name) , 'b' )
This is really great!
We've been working on OpenSourcing a bunch of our stuff, and its nice
to see some overlap on some things... and find inspiration on others.
Dalius-
Do you know the python OpenID libraries well? Prerhaps I could
convince you to help us with an openid plugin for our project
this thread had me thinking...
it would be really neat if there were a way to cancel out the jsonify
decorator in a function
ie:
@jsonify
def index(self):
rVal= { 'status': 'error' }
self.jsonify_cancel()
return rVal
i can't remember why i wanted to do this, but i had a good reason
this thread had me thinking...
it would be really neat if there were a way to cancel out the jsonify
decorator in a function
ie:
@jsonify
def index(self):
rVal= { 'status': 'error' }
self.jsonify_cancel()
return rVal
i can't remember why i wanted to do this, but i had a good reason
I came upon a similar issue a while back.
I don't have an answer for you, BUT I did want to post some info in
case anyone ends up making a patch based on this...
basically, the world of 'url safe chars' is a little confusing, as
there are multiple standards and most people still use and
i've done two things to handle this in the past:
1- CRON
I used to just write a simple script to handle it all, then have cron
run at 1,5,10,15,30,60 minute intervals or whatever.. and use some PID
files to make sure I don't have an overlap in execution
2- Twisted
Now I often just run a twisted
i had a similar situation -- i wanted to change url_for's output on
people who have a 'preview' cookie and those who don't
i basically did this
def url_for_custom( url ):
rval = url_for(url)
if logic_test():
rval = regex or stringsub or both
return rval
then quickly did a
The new PylonsHQ site I'm working on now will have a Snippets section
to make it easier to find and share these bits.
That's cool!
The approach we're doing is as follows:
- We distill functionality into a module
- The module uses class variables to store templates and urls
- To use
I'm trying to make two other objects available to all templates.
I'm wondering what the best practice would be.
Looking at pylons.templating, I'm honestly a bit confused about what
is going on.
( and if you're wondering: object1 is a version of pylons.c that is
for the underlying framework we
Pylons can be slow as fuck, and it still rocks.
If you're managing a project, you have two numbers to worry about:
- the efficiency of your stack in executing code
- the efficiency of your developers in writing code
Pylons is FAR from being what I would call 'efficient' in terms of
code
disclaimer - i'm no authority on pylons.
the stock error controller (automagically generated) handles the magic
error pages
it has this in there:
def img(self, id):
Serve Pylons' stock images
return self._serve_file(os.path.join(media_path, 'img', id))
def style(self,
wait, i'm looking at this again...
i'm not seeing any way to push custom vars into the render function
outside of monkeypatching or doing something to render
i could put my new objects in pylons.c / pylons.g there trivially, but
i dont think i can bust out of them cleanly.
well a few things i'd suggest from previous exploits in other
languages ( btw, have you looked into pylons.templating ? )
- have render take a format argument to override
- instead of pulling off the config, why not just read the file
extension ? pretty much every templating engine has claimed
On Jun 27, 3:16 pm, Mike Orr [EMAIL PROTECTED] wrote:
I got that same problem. it's a bug in the upload object used by
cgi.FieldStorage. You can't test it for truth or booleanize it.
Nice to know I'm not alone. Or a really inept programmer.
Instead you can compare it to None:
if
Just wondering what people use to test Pylons webapps with.
I've been using Safari myself.
I wanted to use Firefox badly, but the 3.0 branch has 2 behaviors that
seem to make development impossible:
- if Pylons generates an error, Firefox will attempt to reload the
page 4more times
On Jun 28, 7:18 am, Shannon -jj Behrens [EMAIL PROTECTED] wrote:
* Use one action to put something into the session and then another
to make use of the session. It's a work flow.
I've always thought that Pylons should have something that does that.
ie:
instead of being a beaker object,
I need to sanitize user input for 'comments' and 'postings'.
Can anyone suggest good ways to handle this?
Browsing the web and other projects, it seems most people do this:
- use beautiful soup ( which i think might be overkill )
- use a sanitize function from sam ruby's mombo/post.py (
I don't really understand what you're saying... but from what I think
you're trying to suggest, I'd have to disagree with this concept.
Sessions simply allow information to persist between requests. Going
into sessions and mangling them outside of the request is a very
unique requirement that
On Jul 3, 4:42 pm, Wichert Akkerman [EMAIL PROTECTED] wrote:
Possibly better:
request.environ.get(X_FORWARDED_FOR, request.environ[REMOTE_ADDR])
maybe someone can make a middleware or pylons patch + config setting
that migrates X_FORWARDED_FOR to REMOTE_ADDR
this is the one i maintain for
just some points on 'hiding' ids-
- if you're doing a social media site, with numeric ids your
competitors and the annoying industry blogs will be judging and
guaging your popularity and success by sequence ids
- by using the ids, you're good on a pylons app... but lets say you
need to offload
any chance of patching routes/base.py with this:
671,672d670
if not routename and 'name' in kargs:
routename = kargs['name']
it just sets the routename to the karg 'name' if its supplied and
there's no name already specified
why?
personally, i like to manage my
On Jul 5, 4:06 pm, jerry [EMAIL PROTECTED] wrote:
However, I wonder how an md5 string can be squeezed into a 10, or even
6-character field with no concern of (future) collision -- or am I mis-
understanding your db schema?
You're misunderstanding the concept.
1. md5(random+time) to get a
I have several helper classes that use g from pylons
I get tons of errors when trying to run tests ( via python setup.py
nosetests ) as importing those packages causes this:
TypeError: No object (name: G) has been registered for this thread
On Jul 6, 2:54 pm, Mike Orr [EMAIL PROTECTED] wrote:
Hi all. I think a better solution is for devlopment.ini to listen
only on localhost by default. I've opened a ticket for
it:http://pylonshq.com/project/pylonshq/ticket/483
That's a great idea -- and should be implemented!
However, just
hm...
in this instance, i use g for three things:
1- on startup, i pull constants out of the DB and stash them into g
2- misc form classes refer to g as the values to use for validation
3- templates use them to generate dropdowns
i guess i could use some sort of factory function to pull g on
On Jul 7, 1:46 pm, Ian Bicking [EMAIL PROTECTED] wrote:
Christopher Weimann wrote:
REMOTE_ADDR is typically set by your webserver and can be trusted.
X_FORWARDED_FOR is an HTTP header typically set by proxy servers or even
the client and I would have to say it can NOT be trusted so
Read this
http://wiki.pylonshq.com/display/pylonsdocs/Form+Handling
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To
I don't think that SOPs are the devil... I think the issue has more to
do with how and where items are instantiated and stored.
I think if the load order were different ( i'm not going to make any
suggestions ;) ), and how we get at them, then many of the end-user
issues could disappear.
the current formencode and htmlfill support is a bit... annoying
since it ships with pylons, its 'recommended', but i wouldn't
recommend it:
1- you can't validate a form outside of using the decorator
2- you can't pull an error or redirect outside of the decorator
3- it 'validates' but doesn't
php is a templating language. all that stuff is written in c and is
optimized. php is WAY faster at variable interpolation than python,
perl, everything else.
templates are a small fraction of your 'business logic'. 95% of what
you do in pylons, php, and everythign else will have the database
1 - 100 of 1274 matches
Mail list logo