Uliweb är en öppen källkod, plattformsoberoende, lätt att använda och enkla programvaruprojekt som syftar till att fungera som en ram för att bygga webbaserade applikationer på vanliga operativsystem webbutveckling. Det är lätt utdragbara, flexibla, samt att sättas in på olika plattformar. Den levereras med tillräckligt exempelkod och läsbara documentation.Features vid ett glanceKey funktioner inkluderar en MVT (Model View Mall) utvecklingsmodell, kraftfullt och flexibelt URL kartläggning, mode miljö utförande, ORM, I18n, inbyggda extensions (sändning, middleware, etc.), kommandoradsverktyg, stöd för mod_wsgi i Apache, stöd för uwsgi, en utveckling server och förbättrad felsökning.
Dessutom ger det stöd för organiseringsprojekt, stöd för visnings mallar, exekveringsmiljö läge, samt förmågan att styra Python-kod i en mall. Ansökan är inte skriven från grunden, vilket innebär att den är baserad på flera befintliga projekt, bland Werkzeug och SQLAlchemy.
Bland andra funktioner kan nämnas stöd för mod_wsgi i Apache, stöd för uwsgi, en utvecklingsserver som laddar om automatiskt varje gång en modul ändras, förbättrat stöd felsökning, en leverans förlängning, ett middle förlängning, och en kraftfull kommandoradsgränssnitt ( CLI) som låter dig skapa projekt, program, exportera statiska filer och bygga en utvecklingsbana server.Under huven och stödde OSesThe programvaran är skriven helt i programmeringsspråket Python, vilket innebär att det kommer att köras på alla operativsystem där Python är tillgänglig och installeras. Det har testats framgångsrikt med många GNU / Linux smaker, liksom med Microsoft Windows och Mac OS X-operativsystem. Uliweb är endast tillgänglig för nedladdning som en källa arkiv, vilket innebär att användaren behöver konfigurera och kompilera den före installationen. Det är så gott som installeras på alla GNU / Linux-plattformen, och kan hittas på standardprogramförråd av utvalda distributioner av Linux, som körs på 32-bitars och 64-bitars hårdvaruplattformar.
Vad är ny i den här versionen:
- Fix config mall och lägga uwsgi skal support
- Lägg miljövariabler stöd i settings.ini. Till exempel finns det en MYSQL_PORT definierad i miljön, så att du kan definierat något i settings.ini:
- [DEFAULT]
- port = $ MYSQL_PORT
- port_str = '$ {MYSQL_PORT}'
- $ MYSQL_PORT är samma som $ {MYSQL_PORT}. Precis när variabeln följer identifierare, så $ {} lätt kan skilja mellan dem.
- Lägg STATIC_COMBINE_CONFIG konfiguration, kan du växla statisk kombination med det. Standard är falskt. Konfigurationen är:
- [STATIC_COMBINE_CONFIG]
- enabled = False
- Fix objcache app bugg, om inte fält som definieras i inställningarna, kommer den att använda alla kolumner i tabellen
- Lägg get_table funktion till funktioner, kan du använda den för att få tabellobjekt. Används i uliweb.contrib.tables app.
- Lägg local_cache till lokal i SimpleFrame, och det kan användas för att lagra kräver relativa cache värden, och det ska vara tomt efter varje kräver processen.
- Förbättra get_object () funktionen i ORM, lägga use_local parameter, så den cachade värdet kommer att kontrolleras i local_cache först, och även spara den i local_cache när få ett värde från cache eller databas.
- Förbättra objcache config-format, kan du också definiera tabellen ut så här:
- user = {'fält': ['username'], 'förfaller': expire_time, "nyckel": inlösbara (instans) | key_field}
- # eller
- user = ['username', 'smeknamn']
- # eller
- user =
- Om definitionen inga fält, kommer den att använda alla områden Model. Och om förfaller är 0 eller inte definierat, det kommer inte gått ut alls.
- Nyckeln kommer att användas för att ersätta id, om du vill ha en annan nyckelvärde, och det kan också vara ett inlösbara objekt, det ska få en instans av modell parameter, så att du kan skapa någon nyckelvärde som du vill.
- Lägg Optimistisk stöd samtidighet kontroll för ORM, så du bör definieras version Fält först i Model, sedan när du sparar objektet, bör du använda:
- obj.save (occ = sant)
- Om det redan finns andra operationen räddade rekordet, det ska ta upp en SaveError Undantag som standard, eftersom den version har ändrats. Du kan också skicka:
- occ_fieldname brukade definieras versionsfältnamn, är version standard
- occ_exception brukade aktiverat Undantag höjs, är standard Sant, om du ställer den False det kommer tillbaka Falskt, men inte höja ett undantag.
Vad är nytt i version 0.2.4:
- Fix ORM är inte kompatibel med SQLAlchemy 0.9.1 . Gammal stil:
- dir = None
- cond = (Blog.c.id == 5) & Inget
- kommer inte rätt i 0.9.1, eftersom Inga inte hoppas över, så du kan ändra ovanstående kod cond = Inget att:
- från sqlalchemy.sql import true
- cond = true ()
- från uliweb.orm import true
- cond = true ()
- lägga __contains__ till funktioner, så att du kan testa om en API redan definierat, bara använda:
- "flash" i funktioner
- Refact generic.py, ta bort functions.flash och functions.get_fileserving beroenden som standard.
- support Fix avkastning med tanke funktionen kan du också i gevent miljö, till exempel:
- expose ('/ test ")
- def test ():
- avkastningen & quot; & quot;
- for i in range (10):
- avkastningen & quot;% d & quot; % (I + 1)
- sömn (1)
- avkastningen & quot; & quot;
- Fix rawsql () bugg för olika databasmotor
- Fix jsonp () dumpar kinesiska tecken bugg
- Lägg trim_path () för att utils / common.py, det kan trimma en sökväg till begränsad längd, till exempel:
- & gt; & gt; & gt; a = '/project/apps/default/settings.ini'
- & gt; & gt; & gt; trim_path (a, 30)
- '... / apps / default / settings.ini'
- Standard begränsad längd är 30.
- Lägg ORM anslutningsinformation utgång när det ges -v alternativet i kommandoraden. Och till lösenordet ersätta med "*". Till exempel:
- $ & gt; uliweb SyncDB -v
- Anslutning: mysql: // blogg:? *** @ Localhost / blogga charset = utf8
- [standard] Att skapa [1/1, blogg] blogg ... förelåg
- Lägg till flera appar stöd för MakeApp kommandot, så du kan använda:
- uliweb MakeApp a b c
- för att skapa en, b, c program på en gång tiden.
- Refactor save_file () process, lägga till sidhuvuden och omvandlare parameter.
- headers som används för att skapa csv header istället för att använda kolumnnamn, men du kan skapa alias så här:
- User.c.username.label (u & quot; Namn & quot;)
- och omvandlare som används för att konvertera kolumnvärde, till exempel:
- def namn (värde, data):
- & quot; & quot; & quot;
- värdet är kolumnvärde
- data är aktuella posten objektet
- & quot; & quot; & quot;
- returvärde + "test"
- save_file (do_ (välj ([User.c.name])), 'test.csv', omvandlare = {'name': name})
- Fix call_view () åberopa wrap_result bugg. Saknade pass handler parameter att wrap_result.
Krav :
- Python
Kommentarer hittades inte