ผลต่างระหว่างรุ่นของ "Inno/62/flask code"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (สร้างหน้าด้วย "== หลังคลิป 2 == === main.py === <syntaxhighlight lang="python"> from flask import Flask from flask import render_template from datetime...") |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 37: | แถว 37: | ||
title=news_item['title'], | title=news_item['title'], | ||
body=news_item['body']) | body=news_item['body']) | ||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
แถว 65: | แถว 64: | ||
<a href="{{ url_for('index') }}">Home</a> | <a href="{{ url_for('index') }}">Home</a> | ||
+ | </body> | ||
+ | </html> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == หลังคลิป 3 == | ||
+ | === main.py === | ||
+ | <syntaxhighlight lang="python"> | ||
+ | from flask import Flask | ||
+ | from flask import render_template, redirect, url_for | ||
+ | from flask import request | ||
+ | |||
+ | from datetime import datetime | ||
+ | |||
+ | app = Flask(__name__) | ||
+ | |||
+ | news_items = { | ||
+ | 1: {'id': 1, | ||
+ | 'title': 'COVID-19 update', | ||
+ | 'body': 'This is a news on COVID-19'}, | ||
+ | 2: {'id': 2, | ||
+ | 'title': 'Facemasks found', | ||
+ | 'body': 'Recent news on facemask production'}, | ||
+ | 3: {'id': 3, | ||
+ | 'title':'Python 4', | ||
+ | 'body':'Python 4 will be out soon.... this is FAKE'}, | ||
+ | } | ||
+ | |||
+ | @app.route('/') | ||
+ | def index(): | ||
+ | name = 'Somchai' | ||
+ | time = datetime.now() | ||
+ | return render_template('index.html', | ||
+ | name=name, | ||
+ | time=time, | ||
+ | news_items=news_items.values()) | ||
+ | |||
+ | @app.route('/news/<id>/') | ||
+ | def show_news_item(id): | ||
+ | news_item = news_items[int(id)] | ||
+ | return render_template('news_item.html', | ||
+ | id=news_item['id'], | ||
+ | title=news_item['title'], | ||
+ | body=news_item['body']) | ||
+ | |||
+ | def new_news_item(title, body): | ||
+ | new_id = max(news_items.keys()) + 1 | ||
+ | return { | ||
+ | 'id': new_id, | ||
+ | 'title': title, | ||
+ | 'body': body | ||
+ | } | ||
+ | |||
+ | @app.route('/news/create/', methods=['POST']) | ||
+ | def create_news_item(): | ||
+ | item = new_news_item(request.form['title'], | ||
+ | request.form['body']) | ||
+ | news_items[item['id']] = item | ||
+ | return redirect(url_for('index')) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === templates/index.html === | ||
+ | <syntaxhighlight lang="html"> | ||
+ | <html> | ||
+ | <body> | ||
+ | <h1>Hello!! {{ name }}</h1> | ||
+ | Hi. This is {{ time }}. This is recent news. | ||
+ | <ul> | ||
+ | {% for item in news_items %} | ||
+ | <li> | ||
+ | <a href="{{ url_for('show_news_item', id=item.id) }}">{{ item.title }}</a> | ||
+ | </li> | ||
+ | {% endfor %} | ||
+ | </ul> | ||
+ | |||
+ | <form action="{{ url_for('create_news_item') }}" method="POST"> | ||
+ | Title: <input name="title"/><br /> | ||
+ | Body: <textarea name="body"></textarea><br /> | ||
+ | <input type="submit" value="Save"/> | ||
+ | </form> | ||
</body> | </body> | ||
</html> | </html> | ||
</syntaxhighlight> | </syntaxhighlight> |
รุ่นแก้ไขปัจจุบันเมื่อ 03:14, 10 มีนาคม 2563
เนื้อหา
หลังคลิป 2
main.py
from flask import Flask
from flask import render_template
from datetime import datetime
app = Flask(__name__)
news_items = {
1: {'id': 1,
'title': 'COVID-19 update',
'body': 'This is a news on COVID-19'},
2: {'id': 2,
'title': 'Facemasks found',
'body': 'Recent news on facemask production'},
3: {'id': 3,
'title':'Python 4',
'body':'Python 4 will be out soon.... this is FAKE'},
}
@app.route('/')
def index():
name = 'Somchai'
time = datetime.now()
return render_template('index.html',
name=name,
time=time,
news_items=news_items.values())
@app.route('/news/<id>/')
def show_news_item(id):
news_item = news_items[int(id)]
return render_template('news_item.html',
id=news_item['id'],
title=news_item['title'],
body=news_item['body'])
templates/index.html
<html>
<body>
<h1>Hello!! {{ name }}</h1>
Hi. This is {{ time }}. This is recent news.
<ul>
{% for item in news_items %}
<li>
<a href="{{ url_for('show_news_item', id=item.id) }}">{{ item.title }}</a>
</li>
{% endfor %}
</ul>
</body>
</html>
templates/show.html
<html>
<body>
<h1>{{ title }}</h1>
<p>{{ body }}</p>
<a href="{{ url_for('index') }}">Home</a>
</body>
</html>
หลังคลิป 3
main.py
from flask import Flask
from flask import render_template, redirect, url_for
from flask import request
from datetime import datetime
app = Flask(__name__)
news_items = {
1: {'id': 1,
'title': 'COVID-19 update',
'body': 'This is a news on COVID-19'},
2: {'id': 2,
'title': 'Facemasks found',
'body': 'Recent news on facemask production'},
3: {'id': 3,
'title':'Python 4',
'body':'Python 4 will be out soon.... this is FAKE'},
}
@app.route('/')
def index():
name = 'Somchai'
time = datetime.now()
return render_template('index.html',
name=name,
time=time,
news_items=news_items.values())
@app.route('/news/<id>/')
def show_news_item(id):
news_item = news_items[int(id)]
return render_template('news_item.html',
id=news_item['id'],
title=news_item['title'],
body=news_item['body'])
def new_news_item(title, body):
new_id = max(news_items.keys()) + 1
return {
'id': new_id,
'title': title,
'body': body
}
@app.route('/news/create/', methods=['POST'])
def create_news_item():
item = new_news_item(request.form['title'],
request.form['body'])
news_items[item['id']] = item
return redirect(url_for('index'))
templates/index.html
<html>
<body>
<h1>Hello!! {{ name }}</h1>
Hi. This is {{ time }}. This is recent news.
<ul>
{% for item in news_items %}
<li>
<a href="{{ url_for('show_news_item', id=item.id) }}">{{ item.title }}</a>
</li>
{% endfor %}
</ul>
<form action="{{ url_for('create_news_item') }}" method="POST">
Title: <input name="title"/><br />
Body: <textarea name="body"></textarea><br />
<input type="submit" value="Save"/>
</form>
</body>
</html>