2017-05-30 12 views
-1

這是燒瓶應用程序的一部分。我想獲得當前時間以HTML文件的形式輸出到任何地方。如何將時間添加到python方法的html

我想將flaskr.py中的current_time()方法添加到附加html文件中from的任何位置。謝謝!

flaskr.py

import os 
import sqlite3 
from flask import Flask, request, session, g, redirect, url_for, abort, \ 
    render_template, flash 
from datetime import date 
import time 

app = Flask(__name__) 
app.config.from_object(__name__) 

app.config.update(dict(
    DATABASE = os.path.join(app.root_path, 'flaskr.db'), ##in real world apps use instance folders for databases instead 
    SECRET_KEY = 'development key', 
    USERNAME = 'admin', 
    PASSWORD = 'default' 
    )) 

app.config.from_envvar('FLASKR_SETTINGS', silent=True) 

def connect_db(): 
    rv = sqlite3.connect(app.config['DATABASE']) 
    rv.row_factory = sqlite3.Row 
    return rv 

def get_db(): 
    if not hasattr(g, 'sqlite_db'): 
     g.sqlite_db = connect_db() 
    return g.sqlite_db 

@app.teardown_appcontext 
def close_db(error): 
    if hasattr(g, 'sqlite_db'): 
     g.sqlite_db.close() 

def init_db(): 
    db = get_db() 
    with app.open_resource('schema.sql', mode = 'r') as f: 
     db.cursor().executescript(f.read()) 
    db.commit() 

@app.cli.command('initdb') 
def initdb_command(): 
    init_db() 
    print('initialized the database.') 

@app.route('/') 
def show_entries(): 
    db = get_db() 
    cur = db.execute('select title, text from entries order by id desc') 
    entries = cur.fetchall() 
    return render_template('show_entries.html', entries=entries) 

@app.route('/add', methods=['POST']) 
def add_entry(): 
    if not session.get('logged_in'): 
     abort(401) 
    db = get_db() 
    db.execute('insert into entries (title, text) values (?, ?)', 
     [request.form['title'], request.form['text']]) 
    db.commit() 
    flash('New entry was successfully posted') 
    return redirect(url_for('show_entries')) 

@app.route('/login', methods=['POST', 'GET']) 
def login(): 
    error = None 
    if request.method == 'POST': 
     if request.form['username'] != app.config['USERNAME']: 
      error = 'Invalid username' 

     elif request.form['password'] != app.config['PASSWORD']: 
      error = 'Invalid password' 
     else: 
      session['logged_in'] = True 
      flash('You were logged in') 
      return redirect(url_for('show_entries')) 
    return render_template('login.html', error = error) 

@app.route('/logout') 
def logout(): 
    session.pop('logged_in', None) 
    flash('You were logged out') 
    return redirect(url_for('show_entries')) 

def current_time(): 
    return date.today() 

show_entries.html

{% extends "layout.html" %} 
{% block body %} 
    {% if session.logged_in %} 
     <form action="{{ url_for('add_entry') }}" method=post class=add-entry> 
      <dl> 
       <dt>Title: 
       <dd><input type=text size=30 name=title> 
       <dt>Text: 
       <dd><textarea name=text rows=5 cols=40></textarea> 

       <dd><input type=submit value=Share> 
      </dl> 
     </form> 

    {% endif %} 
    <ul class=entries> 
     {% for entry in entries %} 
      <li><h2>{{ entry.title }}</h2>{{ entry.text|safe }} 
     {% else %} 
      <li><em> No entries so far</em> 
     {% endfor %} 
    </ul> 
{% endblock %} 

回答

1

你可以用datetime.now()方法:

from datetime import datetime 

... 
return render_template(... current_time = datetime.now()) 
...