标签: bottle

declarative_base()和db.Model有什么区别?

Flask-SQLAlchemy插件的快速入门教程指示用户创建继承db.Model该类的表模型,例如

app = Flask(__main__)
db = SQLAlchemy(app)
class Users(db.Model):
    __tablename__ = 'users'
    ...
Run Code Online (Sandbox Code Playgroud)

但是,SQLAlchemy教程和bottle-SQLAlchemy 自述文件都建议表模型继承Base实例化declarative_base().

Base = declarative_base()
class Users(Base):
    __tablename__ = 'users'
    ...
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别?

python sqlalchemy bottle flask flask-sqlalchemy

70
推荐指数
1
解决办法
7494
查看次数

如何在python中打开一个url

import urllib

fun open():
    return urllib.urlopen('http://example.com')
Run Code Online (Sandbox Code Playgroud)

但是当example.com打开时,它不会渲染css或js.如何在Web浏览器中打开网页?

@error(404)
def error404(error):
    return webbrowser.open('http://example.com')
Run Code Online (Sandbox Code Playgroud)

我正在用瓶子.给我错误:TypeError("'bool' object is not iterable",)

python bottle

68
推荐指数
5
解决办法
26万
查看次数

"getaddrinfo失败了",这是什么意思?

文件 "C:\ Python27\lib中\ socket.py",线224,在返回甲基GETATTR(self._sock,名称)(*参数)gaierror:[错误11004]的getaddrinfo失败

从此处启动hello world示例时出现此错误:

http://bottlepy.org/docs/dev/

python bottle

45
推荐指数
5
解决办法
20万
查看次数

ImportError:没有名为'bottle'的模块 - PyCharm

我用pip install在python3.4上安装了瓶子.在终端,当我这样做:

$ python3.4
>>>import bottle # shows no import error
>>> 
Run Code Online (Sandbox Code Playgroud)

但是当我在PyCharm中这样做时,它会说"导入瓶子ImportError:没有名为'bottle'的模块"

python importerror pycharm bottle

44
推荐指数
5
解决办法
10万
查看次数

瓶框架和OOP,使用方法代替功能

我用Bottle做了一些编码.它非常简单,符合我的需求.但是,当我尝试将应用程序包装到类中时,我坚持了下来:

import bottle
app = bottle

class App():
    def __init__(self,param):
        self.param   = param

    # Doesn't work
    @app.route("/1")
    def index1(self):
        return("I'm 1 | self.param = %s" % self.param)

    # Doesn't work
    @app.route("/2")
    def index2(self):
        return("I'm 2")

    # Works fine
    @app.route("/3")
    def index3():
        return("I'm 3")
Run Code Online (Sandbox Code Playgroud)

可以在Bottle中使用方法而不是函数吗?

python oop methods class bottle

36
推荐指数
3
解决办法
1万
查看次数

如何使用Bottle返回JSON数组?

我正在使用Bottle编写一个API ,到目前为止一直很棒.但是,在尝试返回JSON数组时,我遇到了一个小障碍.这是我的测试应用代码:

from bottle import route, run

@route('/single')
def returnsingle():
    return { "id": 1, "name": "Test Item 1" }

@route('/containsarray')
def returncontainsarray():
    return { "items": [{ "id": 1, "name": "Test Item 1" }, { "id": 2, "name": "Test Item 2" }] }

@route('/array')
def returnarray():
    return [{ "id": 1, "name": "Test Item 1" }, { "id": 2, "name": "Test Item 2" }]

run(host='localhost', port=8080, debug=True, reloader=True)
Run Code Online (Sandbox Code Playgroud)

当我运行它并请求每个路由时,我得到了前两条路线所期望的JSON响应:

/单

{ id: 1, name: "Test Item 1" }
Run Code Online (Sandbox Code Playgroud)

/ containsarray …

python bottle

28
推荐指数
2
解决办法
3万
查看次数

将mongodb返回对象转换为字典

我正在使用瓶子框架和mongoengine.我有订单型号:

class OrderDetail(Option):
    orderDetailsQty = FloatField()

    def to_dict(self):
        return mongo_to_dict_helper(self)


class Order(Document):
    userName = StringField(required=True)
    orderDate = DateTimeField()
    orderStatus = ListField(EmbeddedDocumentField(Status))
    orderDetails = ListField(EmbeddedDocumentField(OrderDetail))
    orderComments = ListField(EmbeddedDocumentField(Comment))
    isActive = BooleanField()

    def to_dict(self):
        orderObj = mongo_to_dict_helper(self)
        orderDetailList = []
        for orderDetail in orderObj["orderDetails"]:
            orderDetailList.append(orderDetail.__dict__)
        orderObj["OrderDetails"] = orderDetailList
        return (self)
Run Code Online (Sandbox Code Playgroud)

当查询mongodb时,我得到一个对象,然后使用以下函数将其转换为dict:

def mongo_to_dict_helper(obj):
    return_data = []
    for field_name in obj._fields:
        if field_name in ("id",):
            continue
        data = obj._data[field_name]

        if isinstance(obj._fields[field_name], StringField):
            return_data.append((field_name, str(data)))
        elif isinstance(obj._fields[field_name], FloatField):
            return_data.append((field_name, float(data)))
        elif isinstance(obj._fields[field_name], IntField):
            return_data.append((field_name, …
Run Code Online (Sandbox Code Playgroud)

python mongodb mongoengine bottle python-2.7

28
推荐指数
4
解决办法
3万
查看次数

如何在文件更改时让Bottle重新启动?

到目前为止,我真的很喜欢Bottle,但是我必须从服务器中删除CTRL + C并在每次更改代码时重新启动它,这对我的工作效率来说是一个很大的打击.我已经考虑过使用Watchdog来跟踪文件更改然后重新启动服务器,但是当bottle.run函数阻塞时我该怎么做呢.

从监视文件更改的外部脚本运行服务器似乎需要设置很多工作.我认为这是Bottle,CherryPy和其他开发人员的普遍问题.

感谢您解决问题!

python cherrypy bottle

27
推荐指数
1
解决办法
9854
查看次数

瓶子和杰森

如何从瓶子请求处理程序返回json数据.我在瓶子src中看到了一个dict2json方法,但我不知道如何使用它.

文档中包含的内容:

@route('/spam')
def spam():
    return {'status':'online', 'servertime':time.time()}
Run Code Online (Sandbox Code Playgroud)

当我打开页面时给我这个:

<html>
    <head></head>
    <body>statusservertime</body>
</html>
Run Code Online (Sandbox Code Playgroud)

python json bottle

26
推荐指数
2
解决办法
2万
查看次数

瓶静态文件

我曾尝试阅读Bottle的文档,但是,我仍然不确定静态文件服务是如何工作的.我有一个index.tpl文件,并在其中附加了一个css文件,它的工作原理.但是,我正在读取Bottle不会自动提供css文件,如果页面正确加载则不能为true.

但是,在请求页面时,我遇到了速度问题.那是因为我没用过return static_file(params go here)吗?如果有人能够清理它们的工作方式,以及在加载页面时如何使用它们,那就太棒了.

服务器代码:

from Bottle import route,run,template,request,static_file



@route('/')
def home():
    return template('Templates/index',name=request.environ.get('REMOTE_ADDR'))

run(host='Work-PC',port=9999,debug=True)
Run Code Online (Sandbox Code Playgroud)

指数:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
  <title>index</title>
  <link type="text/css"
 href="cssfiles/mainpagecss.css"
 rel="stylesheet">
</head>
<body>
<table
 style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;"
 border="0" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td>
      <h1><span class="headertext">
      <center>Network
Website</center>
      </span></h1>
      </td>
    </tr>
  </tbody>
</table>
%if name!='none':
    <p align="right">signed in as: {{name}}</p>
%else:
    pass
%end
<br>
<table style="text-align: left; width: …
Run Code Online (Sandbox Code Playgroud)

python bottle python-2.7

24
推荐指数
3
解决办法
3万
查看次数