• Stars
    star
    468
  • Rank 93,767 (Top 2 %)
  • Language
    Python
  • License
    BSD 2-Clause "Sim...
  • Created over 15 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple and easy use python web framework

LOGO

Uliweb Introduction

Join the chat at https://gitter.im/limodou/uliweb

Limodou [email protected]

About Uliweb

Uliweb is a full-stacked Python based web framework. It has three main design goals, they are: reusability, configurability, and replaceability. All the functionalities revolve around these goals.

This project was created and lead by Limodou mailto:[email protected].

License

Uliweb is released under BSD license.

Infrastructure

Uliweb was not created totally from scratch. It uses some modules created by other developers, for example:

  • Werkzeug Used to handle core processes in the framework. For example: URL Mapping, Debug, Request, Response, etc.
  • SqlAlchemy The ORM based on it. Developers can access databases, or use the module separately.

I also referenced some code from other web frameworks, for example:

  • The Templating system is modified from tornado.
  • Some code inspired from Django.

I also constructed a few new "wheels" myself. For example:

  • Form processing module. Developers can use it to create HTML code, validate submitted data and convert submitted data to Python data types.
  • I18n processing including template support, language lazy process.
  • Cache & Session modules.
  • Uliorm, which is an ORM module, was built on top of SqlAlchemy. I also referenced from GAE datastore module.
  • Framework runtime process.
  • Plugin mechanism, styled after the one used in the UliPad project.

Features

  • Project Organization

    • MVT(Model View Template) development model.
    • Distributed development but unified management. Uliweb organizes a project with small apps. Each app can have its own configuration file(settings.ini), template directory, and static directory. Existing apps can be easily reused, but are treated as a compound. web application project if configured as such. Developers can also reference static files and templates between apps, thus easing inter-application data exchange. All apps in a project are loaded by default if INSTALLED_APPS is not configured in the configuration file. All separate app configuration files are automatically processed at project startup.
  • URL Mapping

    • Flexiable and powerful URL mapping. Uliweb uses werkzeug's routing module. User can easily define a URL, which in turn can be easily bound with a view function. URLs can also be created reversely according to the view function name. It supports argument definitions in URLs and default URL mapping to a view function.
  • View and Template

    • View templates can be automatically applied. If you return a dict variable from view function, Uliweb will automatically try to match and apply a template according to the view function name.
    • Environment execution mode. Each view function will be run in an environment, which eliminates the need to write many import statements. Plus there are already many objects that can be used directly, for example: request, response, etc. This is DRY and saves a lot of coding
    • Developers can directly use Python code in a template, the Python code does not neede to be indented as long as a pass statement is added at the end of each code block. Uliweb also supports child template inclusion and inheritance.
  • ORM

    • Uliorm is based on SQLAlchemy package, so you can use Model layer and SQL expression layer both.
    • Uliorm integrates with alembic package, you can use it to migirate database automatically.
  • I18n

    • Can be used in python and template files.
    • Browser language and cookie settings are supported including automatic language switching.
    • Provides a command line tool that developers can use to extract .po files. This can happen either at the app level or project level process. It can automatically merge .pot files to existing .po files.
  • Extension

    • Dispatch extension. This is a dispatch processing mechanism that utilizes different types of dispatch points. So you can write procedures to carry out special processes and bind them to these dispatch points. For example, database initicalization, I18n process initialization, etc.
    • middleware extension. It's similar to Djangos. You can configure it in configuration files. Each middleware can process the request and response objets.
    • Special function calls in the views module initial process. If you write a special function named __begin__, it'll be processed before any view function can be processed, this allows developers to do some module level processing at that point, for example: check the user authentication, etc.
  • Command Line Tools

    • Creates project, creates apps, and include the basic essential directory structure, files and code.
    • Export static files, you can export all available apps' static files to a special directory. Also supports css and js combinition and compress process.
    • Startup a development web server thats supports debugging and autoreload.
    • Apps can also have its own command line tools. For example: orm, auth, etc.
  • Deployment

    • Supports mod_wsgi in Apache.
    • Supports uwsgi.
  • Development

    • Provide a development server, and can be automatically reload when some module files are modified.
    • Enhanced debugging, you can check the error traceback, template debugging is also supported.

Commuity

Links

LOGO

More Repositories

1

ulipad

wxpython + python based Editor
Python
246
star
2

uli-gantt

JQuery gantt plugin, based on d3.js and mmGrid
JavaScript
40
star
3

parm

Convert par favorit markdown syntax to html document, supports semantic-ui and bootstrap css framework.
JavaScript
38
star
4

Win32-Process-Watcher

Monitor the execution status of the processes in windows platform.
Python
35
star
5

wshell

web shell written by python and gevent
JavaScript
35
star
6

avalon-learning

Simple avalon tutorial, see the site:
JavaScript
29
star
7

uliweb-doc

Uliewb documentation project and source code
Python
29
star
8

ido

A command tool used to install packages and execute commands.
Python
24
star
9

vue-remote-import

Import remote VUE component via url
JavaScript
23
star
10

plugs

uliweb apps collcection project
JavaScript
23
star
11

uliwebzone

uliweb discuss zone
Python
22
star
12

par

simple parsing implementation in python
Python
22
star
13

xltools

Excel template reader and writer tools
Python
21
star
14

uliweb3

Simple and easy use python web framework for python3+
Python
15
star
15

codepark

code park
HTML
10
star
16

wewo

An simple workflow
Python
8
star
17

desktopnotify

An js lib to invoke browser notification api
JavaScript
8
star
18

vuecoms

Vue components lib
Vue
8
star
19

vuecoms2

Vue + iView based component lib, mainly provide Grid and Build
Vue
7
star
20

rgrid

riot grid plugin
JavaScript
7
star
21

vuecoms-doc

vuecoms documentation
Shell
6
star
22

2to6

Porting python 2 source code to python 3 and compatible with six module
Python
6
star
23

chatroom

A chatroom app of uliweb, based on gevent-socketio
CSS
3
star
24

uliweb-admin

Admin app about uliweb
JavaScript
3
star
25

uliweb-apps

collection uliweb apps, but it's based on uliweb_layout, uliweb_ui, also shipped a demo project
Python
2
star
26

works

Content and Task management tools
JavaScript
2
star
27

uliweb-blogs-demo

Uliweb multi user blog project demo
JavaScript
1
star
28

ctasks

project management tool
1
star