在金字塔文档中,Sqlalchemy Dispatch Tutorial使用虚拟数据security.py.我需要使用mysql数据,所以我实现了这样:
我的登录代码
@view_config(route_name='login', renderer='json',permission='view')
def user_login(request):
session = DBSession
username = request.params['username']
password = request.params['password']
sha = hashlib.md5()
sha.update(password)
password = sha.digest().encode('hex')
user = session.query(Users).filter(and_(Users.username==username,Users.password ==password)).count()
if(user != 0):
headers = remember(request, username)
return HTTPFound(location = '/index/',
headers =headers)
else:
print "error"
Run Code Online (Sandbox Code Playgroud)
以上使系统记住将使用的用户名security.py.下面,我使用它来获取用户所在的组.
from .models import (
DBSession,
Users,
)
def groupfinder(userid, request):
session = DBSession()
for instance in session.query(Users).filter(Users.username==userid):
group = 'group:'+instance.group
lsth = {'userid':[group]}
return lsth.get ('userid')
Run Code Online (Sandbox Code Playgroud)
这是使用金字塔授权的最佳方式吗?
我正在关注http://developer.chrome.com/trunk/apps/first_app.html上的Google Chrome网络应用开发,并且网络应用未启动.当我点击页面上的应用程序图标时,它会关闭标签页.我已经从github下载了示例应用程序和插件,但是当我看到控制台时它们也没有工作我得到了这个错误,请不要在chrome:// flags中启用实验API.
Uncaught TypeError: Cannot read property 'onLaunched' of undefined
Run Code Online (Sandbox Code Playgroud)
我已将Chrome浏览器更新为22.0.1229.79版.我的manifest.json文件是
{
"name": "Hello World!",
"description": "My first packaged app.",
"manifest_version": 2,
"version": "0.1",
"app": {
"background": {
"scripts": ["background.js"]
}
},
"icons": {
"16": "calculator-16.png",
"128": "calculator-128.png"
}
Run Code Online (Sandbox Code Playgroud)
}
还有我的background.js文件
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('window.html', {
'width': 400,
'height': 500
});
});
Run Code Online (Sandbox Code Playgroud)
有人能指出我哪里出错了吗?
我试图在金字塔框架中使用金字塔烧杯,它只是不工作它创建会话对象但我不能用线访问它们
@view_config(route_name='load_qli', renderer='json')
def load_qli(request):
request.environ['beaker.session']
Run Code Online (Sandbox Code Playgroud)
它给出以下错误
KeyError
KeyError: 'beaker.session'
Run Code Online (Sandbox Code Playgroud)
我的development.ini文件看起来像这样
# pyramid_beaker settings
session.type = file
session.data_dir = %(here)s/data/sessions/data
session.lock_dir = %(here)s/data/sessions/lock
session.key = customerskey
session.secret = customerssecret
session.cookie_on_exception = true
Run Code Online (Sandbox Code Playgroud)
和init.py这样
from pyramid.config import Configurator
from sqlalchemy import engine_from_config
from qlipe.models import DBSession
from pyramid_mailer import mailer_factory_from_settings
from pyramid_beaker import session_factory_from_settings
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
# pyramid_beaker add-on
session_factory = session_factory_from_settings(settings)
config = Configurator(
settings=settings, …Run Code Online (Sandbox Code Playgroud) 我在 sqlalchemy 中有以下表格:-
class Post(Base):
__tablename__ = 'posts'
id = Column(Integer, primary_key=True)
compare_url =Column(String(200))
url = Column(String(200))
postedby = Column(Integer)
category = Column(String(50))
title = Column(String(500),nullable=False)
author = Column(String(500),default="Unspecified")
content = Column(Text(),default="could not fetch this content you will have to read it externally")
summary = Column(Text())
time = Column(TIMESTAMP(),default=now())
post_type=Column(Text())
Reads = relationship("Read", backref="Post")
Reposts = relationship("RePost", backref="Post")
Votes = relationship("Vote", backref="Post")
class Read(Base):
__tablename__ = 'reads'
id = Column(Integer, primary_key=True)
post_read = Column(Integer, ForeignKey('posts.id'))
#post = relationship("Post", backref=backref('Reads', order_by=id)) …Run Code Online (Sandbox Code Playgroud) Pyramid Framework附带了一个使用sqlite的sql炼金术示例教程.问题是我想使用mysql所以我改变了这个
sqlalchemy.url = sqlite:///%(here)s/tutorial.db
Run Code Online (Sandbox Code Playgroud)
进入这个
sqlalchemy.url = mysql://root:22password@localhost/alchemy
Run Code Online (Sandbox Code Playgroud)
当我试图跑
../bin/pserve development.ini --reload
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误
File "build/bdist.linux-i686/egg/sqlalchemy/connectors/mysqldb.py", line 52, in dbapi
ImportError: No module named MySQLdb
Run Code Online (Sandbox Code Playgroud)
我知道我应该在setup.py中包含我的应用程序的dependecies但是我不知道现在要包括哪些帮助请我的setup.py看起来像这样
import os
import sys
from setuptools import setup, find_packages
here = os.path.abspath(os.path.dirname(__file__))
README = open(os.path.join(here, 'README.txt')).read()
CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()
requires = [
'pyramid',
'SQLAlchemy',
'transaction',
'pyramid_tm',
'pyramid_debugtoolbar',
'zope.sqlalchemy',
]
if sys.version_info[:3] < (2,5,0):
requires.append('pysqlite')
setup(name='tutorial',
version='0.0',
description='tutorial',
long_description=README + '\n\n' + CHANGES,
classifiers=[
"Programming Language :: Python",
"Framework :: Pylons",
"Topic :: Internet …Run Code Online (Sandbox Code Playgroud) 我创建了一个.pt模板,其中包含以下代码段
<span class="help-block">
${password_confirm}
</span>
Run Code Online (Sandbox Code Playgroud)
我的问题是,password_confirm字段并不总是由金字塔框架呈现,因此它显示下面的错误
chameleon.utils.NameError
NameError: password_confirm
Run Code Online (Sandbox Code Playgroud)
我理解我想使用tal:条件,但我尝试的一切都失败了.有人可以帮助我,我想如何去做一些不会总是在模板中呈现的变量.
我试图使用正则表达式从python中的字符串中删除@tags但是当我尝试这样做时
str = ' you @warui and @madawar '
h = re.search('@\w*',str,re.M|re.I)
print h.group()
Run Code Online (Sandbox Code Playgroud)
它仅输出第一个@tag.
@warui
Run Code Online (Sandbox Code Playgroud)
当我在http://regexr.com?304a6上尝试它时,它的工作原理
我试图在localhost上运行pdf.js示例,并在下载后我做了
make server
Run Code Online (Sandbox Code Playgroud)
但是,当我试图运行与下载捆绑的示例时,我收到了此错误
missing variable name
var in = i * n;
http://localhost/pdf.js/src/function.js
Line 174
Run Code Online (Sandbox Code Playgroud)
已成功获取PDF文件
GET http://localhost/pdf.js/examples/helloworld/helloworld.pdf 200 OK 210ms
Run Code Online (Sandbox Code Playgroud)
我有什么遗漏作为要求吗?