1

Python 用のボトル ​​フレームワーク (セッションにはビーカーも使用) を使用しており、HTML コード内のスクリプトから変数にアクセスする際に問題があります。以下は Python スクリプトです。

import os, MySQLdb, hashlib, random, markdown2
import beaker.middleware
import bottle
from bottle import run, route, post, get, request, abort, template, hook, app, view

@post('/submit')
def submit():
    db = MySQLdb.connect(host='localhost', port=3306, user="root", passwd="blkFDF94alkf", db="_pCMS")
    query = db.cursor()

    user = request.forms.get('credentials.username')
    username = MySQLdb.escape_string(user)
    request.session['username'] = username
    passw = request.forms.get('credentials.password')
    pass_w = MySQLdb.escape_string(passw)
    passw2 = str(pass_w)
    password = hashlib.md5(passw2).hexdigest()
    user_name = request.session['username']


    if username >= 2 and password >= 6:
        if True:
            ugh = query.execute("SELECT * FROM users WHERE username = '%s' AND password = '%s'" % (username, password))
            db.commit()
            return me()
    else:
        return index()

上記のコードを説明する必要があるとは思えません。知っておく必要があるのは、以下の HTML コードの Python スクリプトの関数で変数 user_name にアクセスする方法だけだからです。これは私がHTMLについて持っているものです:

me.tpl:

<div class="label">Name:</div>
    %if len(user_name) >= 2:
        <div class="content">{{user_name}}</div>
    %end
</div>

それは変数 user_name にアクセスする正しい方法ですか? 次のエラーが表示されるため、そのようには機能しません。

NameError: name 'user_name' is not defined

me() と index() が行うこと:

@route('/')
@route('/index')
@view('index.tpl')
def index():
    index = { 'index' : _index()}
    return index

def _index():
    return 't'


@get('/me')
@view('me.tpl')
def me():
    me = { 'me' : _me()}
    return me

def _me():
    return 't'
4

1 に答える 1

0

ビューmeはパラメーターを取り、user_nameそれをテンプレートに挿入する必要があります。

@get('/me')
@view('me.tpl')
def me(user_name):
    me = { 
        'me': _me(),
        'user_name': user_name
    }
    return me
于 2013-08-29T10:32:47.820 に答える