mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
vweb: more updates
This commit is contained in:
parent
fa00f157ad
commit
2bc9ee4d88
@ -8,8 +8,8 @@ const (
|
||||
|
||||
struct App {
|
||||
vweb.Context
|
||||
pub mut:
|
||||
cnt int
|
||||
mut:
|
||||
cnt int
|
||||
}
|
||||
|
||||
fn main() {
|
||||
@ -31,7 +31,7 @@ pub fn (mut app App) json_endpoint() vweb.Result {
|
||||
pub fn (mut app App) index() vweb.Result {
|
||||
app.cnt++
|
||||
show := true
|
||||
// app.vweb.text('Hello world from vweb')
|
||||
// app.text('Hello world from vweb')
|
||||
hello := 'Hello world from vweb'
|
||||
numbers := [1, 2, 3]
|
||||
return $vweb.html()
|
||||
@ -42,9 +42,6 @@ pub fn (mut app App) show_text() vweb.Result {
|
||||
}
|
||||
|
||||
pub fn (mut app App) cookie() vweb.Result {
|
||||
app.set_cookie({
|
||||
name: 'cookie'
|
||||
value: 'test'
|
||||
})
|
||||
app.set_cookie(name: 'cookie', value: 'test')
|
||||
return app.text('Headers: $app.headers')
|
||||
}
|
||||
|
@ -6,9 +6,8 @@ import sqlite
|
||||
import json
|
||||
|
||||
struct App {
|
||||
pub mut:
|
||||
vweb vweb.Context
|
||||
db sqlite.DB
|
||||
vweb.Context
|
||||
db sqlite.DB
|
||||
}
|
||||
|
||||
fn main() {
|
||||
@ -32,9 +31,7 @@ pub fn (app &App) index() vweb.Result {
|
||||
}
|
||||
|
||||
pub fn (mut app App) init_once() {
|
||||
db := sqlite.connect('blog.db') or {
|
||||
panic(err)
|
||||
}
|
||||
db := sqlite.connect('blog.db') or { panic(err) }
|
||||
app.db = db
|
||||
}
|
||||
|
||||
@ -46,10 +43,10 @@ pub fn (mut app App) new() vweb.Result {
|
||||
}
|
||||
|
||||
pub fn (mut app App) new_article() vweb.Result {
|
||||
title := app.vweb.form['title']
|
||||
text := app.vweb.form['text']
|
||||
title := app.form['title']
|
||||
text := app.form['text']
|
||||
if title == '' || text == '' {
|
||||
app.vweb.text('Empty text/title')
|
||||
app.text('Empty text/title')
|
||||
return vweb.Result{}
|
||||
}
|
||||
article := Article{
|
||||
@ -60,14 +57,14 @@ pub fn (mut app App) new_article() vweb.Result {
|
||||
sql app.db {
|
||||
insert article into Article
|
||||
}
|
||||
return app.vweb.redirect('/')
|
||||
return app.redirect('/')
|
||||
}
|
||||
|
||||
pub fn (mut app App) articles() {
|
||||
articles := app.find_all_articles()
|
||||
app.vweb.json(json.encode(articles))
|
||||
app.json(json.encode(articles))
|
||||
}
|
||||
|
||||
fn (mut app App) time() {
|
||||
app.vweb.text(time.now().format())
|
||||
app.text(time.now().format())
|
||||
}
|
||||
|
@ -3,12 +3,12 @@ vlib/v/checker/tests/vweb_routing_checks.vv:22:1: error: mismatched parameters c
|
||||
21 | ['/bar']
|
||||
22 | pub fn (mut app App) bar(a string) vweb.Result {
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
23 | app.vweb.html('works')
|
||||
23 | app.html('works')
|
||||
24 | return vweb.Result{}
|
||||
vlib/v/checker/tests/vweb_routing_checks.vv:29:1: error: mismatched parameters count between vweb method `App.cow` (0) and route attribute ['/cow/:low'] (1)
|
||||
27 | // no segfault, but it shouldnt compile
|
||||
28 | ['/cow/:low']
|
||||
29 | pub fn (mut app App) cow() vweb.Result {
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
30 | app.vweb.html('works')
|
||||
30 | app.html('works')
|
||||
31 | return vweb.Result{}
|
||||
|
@ -29,7 +29,7 @@ pub fn (app mut App) index() {
|
||||
pub fn (app App) post() {
|
||||
id := app.get_post_id()
|
||||
post := app.retrieve_post(id) or {
|
||||
app.vweb.redirect('/')
|
||||
app.redirect('/')
|
||||
return
|
||||
}
|
||||
comments := app.find_comments(id)
|
||||
@ -52,7 +52,7 @@ pub fn (app App) post() {
|
||||
@end
|
||||
```
|
||||
|
||||
`$vweb.html()` compiles an HTML template into V during compilation,
|
||||
`$vweb.html()` compiles an HTML template into V during compilation,
|
||||
and embeds the resulting code in current action.
|
||||
|
||||
That means that the template automatically has access to that action's entire environment.
|
||||
|
Loading…
Reference in New Issue
Block a user