Want to improve this questio开发者_如何转开发n? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this questionI want to build websites for multiple customers and want to take advantage of features that come with typical CMSs. But on top of that I need to do lots of customization like:
- Writing my own templates on top of any existing templates to show the data in a form more suitable for these sites.
- Extract some of the data from existing data sources which will be updated by different processes.
- Implement my own login/auth mechanisms.
- Do some of the SEO optimizations of the site myself and add some dynamic pages to the sites.
Which CMSs can handle these types of requirements or am I better off using something like Django. I am comfortable with both python and php but prefer python.
Two highly versatile and configurable CMSs I have used:
- Wolf CMS - PHP-based, makes PHP directly accessible in backend; "templating" is simply (X)HTML + CSS + PHP calls for content; highly extensible.
- Symphony CMS - XML + PHP based; XSLT makes it possible to manipulate site content in creative ways.
So, neither Python-based, and Symphony requires getting up to speed with XML/XSLT. Both tick all your boxes and put a fair bit of power into developer's hands.
+1 for mezzanine. I have done quite a bit of work with mezzanine and you can have custom templates on a per slug basis http://mezzanine.jupo.org/docs/content-architecture.html#page-templates and add special logic through page processors http://mezzanine.jupo.org/docs/content-architecture.html#page-processors (You can specify page processors on a per slug basis or to apply to all models of a certain type which inherit from Mezzanine's Page).
What this means is you could go into the admin, create a page called random page, and then create a template called random-page.html and random page will be rendered using your new template rather than the default. You could also create a file called page_processors.py, use a decorator giving it the slug random-page and write custom code implementing form processing or whatever.
In my experience it is very extensible and quite easy to work with and understand as well as having good docs at mezzanine.jupo.org/docs
my 2 cents
Cake php is nice php framework which you can quickly use build a custom CMS. It is also quite similar to django in its setup. An added bonus with it is that it has caching implemented from the start. It uses a MVC structure, so it very easy to get your head around.
If you know and are comfortable using django then why not stick with that? as django is perfect for all your requirements.
Coming from the django world, I'd recommend using a third party app such as django-cms and mezzanine. Although, the framework is very much dependent to its authentication framework so instead of implementing your own, I suggest taking advantage of this and customize it based on your needs.
If you are comfortable with hands-on programming, use Drupal. It is one of the, if not the most powerful, configurable and tested CMS around.
There are lots of CMSs' available out there and most of them are good also but the three that always stand out are Drupal, Joomla and Wordpress. Joomla and wordpress are easier to configure but not as customizable as Drupal is.
Several fine suggestions already.
Django is definitely fairly hands-on, but if you go the Django route give Pinax a look, http://pinaxproject.com/
Pinax combines many apps together to give you a lot of functionality right out of the box. Since it's still Django under the hood, you can still customize it as much as you want.
精彩评论