根据Flask自述文件,可以访问蓝图静态文件blueprintname/static.但由于某种原因,它不起作用.
我的蓝图是这样的:
app/frontend/views.py :
frontend = Blueprint('frontend', __name__,
template_folder='templates',
static_folder='static')
@frontend.route('/') etc...
Run Code Online (Sandbox Code Playgroud)app/frontend/js/app.js :我的javascript
当我去的时候abc.com/frontend/static/js/app.js,它只给出了404.
当我按照Flask自述文件获取我的静态文件时:
<script src="{{url_for('frontend.static', filename='js/app.js')}}"></script>
Run Code Online (Sandbox Code Playgroud)
输出是
<script src="/static/js/app.js"></script>
Run Code Online (Sandbox Code Playgroud)
哪个也行不通.我的根app/static/文件夹中没有任何内容.
我无法访问我的蓝图中的任何静态文件!烧瓶读我说它应该工作!
Run Code Online (Sandbox Code Playgroud)admin = Blueprint('admin', __name__, static_folder='static')默认情况下,路径的最右边部分是它在Web上公开的位置.由于该文件夹在此处称为静态,因此它将在蓝图+/static的位置可用.假设蓝图已注册为/ admin,静态文件夹将位于/ admin/static.
我想做make install,但我一直在收到错误.我已经尝试过以下答案:由于egg_info错误,无法通过pip安装
Command python setup.py egg_info failed with error code 1 in /abc/abc_env/build/MySQL-python
Storing debug log for failure in /Users/Pat/.pip/pip.log
Run Code Online (Sandbox Code Playgroud)
完整的调试日志:http://pastebin.com/cnGgWU4G
这是Makefile:
virtualenv-2.7 my_env && \
source my_env/bin/activate && \
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
看起来问题只发生在虚拟环境中.我能够pip install mysql-python没有问题,但pip install -r requirements.txt在尝试安装时有错误mysql-python
requirements.txt如下:
Flask==0.10.1
Jinja2==2.7.1
MarkupSafe==0.18
MySQL-python==1.2.4
PyYAML==3.10
SQLAlchemy==0.8.3
Tempita==0.5.1
Werkzeug==0.9.4
argparse==1.2.1
dataset==0.3.13
decorator==3.4.0
docopt==0.4.0
itsdangerous==0.23
mandrill==1.0.53
mysql-connector-python==1.0.12
requests==2.0.1
sqlalchemy-migrate==0.7.2
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud) 我正在发布一些JSON数据并添加Authorization标题.但是,请求对象没有正确的授权属性.HTTP_AUTHORIZATION并且headers都显示正确的授权详细信息.
{'authorization': None,
'cookies': {},
'environ': {'CONTENT_LENGTH': '81',
'CONTENT_TYPE': u'application/json',
'HTTP_AUTHORIZATION': 'testkey:',
'HTTP_CONTENT_LENGTH': '81',
'HTTP_CONTENT_TYPE': 'application/json',
'HTTP_HOST': 'test',
'PATH_INFO': '/v1/test',
'QUERY_STRING': '',
'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': '',
'SERVER_NAME': 'test',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.1',
'flask._preserve_context': False,
'werkzeug.request': <Request 'http://test/v1/test' [POST]>,
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x10d5471e0>,
'wsgi.input': <_io.BytesIO object at 0x11074c410>,
'wsgi.multiprocess': False,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)},
'headers': EnvironHeaders([('Authorization', testkey:'), ('Host', u'test'), ('Content-Length', u'81'), ('Content-Type', u'application/json')]),
'shallow': False,
'url': …Run Code Online (Sandbox Code Playgroud) 我正在编写一些函数来处理模板中的日期和文本格式.
def coolfunc(s):
return s + ' is cool'
app.jinja_env.globals.update(coolfunc=coolfunc)
app.jinja_env.filters['coolfunc'] = coolfunc
Run Code Online (Sandbox Code Playgroud)
模板:
{{ coolfunc(member.name) }}
{{ member.name | coolfunc }}
Run Code Online (Sandbox Code Playgroud)
输出:
John is cool
John is cool
Run Code Online (Sandbox Code Playgroud)
我不确定函数和过滤器之间的真正区别是什么.在我看来,过滤器看起来更干净?
我有类似的东西
"repositories": [
{
"type": "package",
"package": {
"name": "myrepo",
"version": "dev-master",
"source": {
"url": "https://github.com/me/myrepo.git",
"type": "git",
"reference": "master"
}
}
},
Run Code Online (Sandbox Code Playgroud)
但是当Composer拉出回购时,遥控器(origin和composer)就会.git/config被设置为git://github.com/me/myrepo.git.
[remote "origin"]
url = git://github.com/me/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = git@github.com:me/myrepo.git
[branch "master"]
remote = composer
merge = refs/heads/master
[remote "composer"]
url = git://github.com/me/myrepo.git
fetch = +refs/heads/*:refs/remotes/composer/*
Run Code Online (Sandbox Code Playgroud)
我无法推动它,因为Github无法使用git://.我必须手动将其更改为https://然后推送.我https://在URL中指定了,但为什么这不受尊重?
我有四个类,像这样:Group,Parent,Child,Toy.
Group有一种parents关系指向ParentParent有一种children关系指向ChildChild有一种toys关系指向ToyParent有一个toys association_proxy产生所有Toy的S Parent的孩子们.
我希望能够获得一组中的所有玩具.我试图创建一个association_proxy对Group链接到Parent的toys,但它会产生这样的:
[[<Toy 1>, <Toy 2>], [], [], []]
Run Code Online (Sandbox Code Playgroud)
当我想要这个:
[<Toy 1>, <Toy 2>]
Run Code Online (Sandbox Code Playgroud)
如果Parent的children没有任何Toys,则toys关联代理[].但是,第二个关联代理不知道要排除空列表.此外,列表应折叠.反正有没有让这个工作?
class Group(db.Model):
id = db.Column(db.Integer, primary_key=True)
created_at = db.Column(db.DateTime, default=utils.get_now_datetime)
name = db.Column(db.String(80, convert_unicode=True))
# …Run Code Online (Sandbox Code Playgroud) 我认为这对初学者来说是一个非常有用的功能.当我学习R时,我会将每个课程的笔记保存在一个文件中并执行我想要的行.现在我正在学习Python,我必须将每个新东西保存在不同的文件中.是否没有可以做R所做的IDE?我目前正在使用PyCharm.
我有User和Post的基本模型.在我的用户模型中,我有
posts = db.relationship('Post', backref='user', lazy='dynamic')
Run Code Online (Sandbox Code Playgroud)
但是,当我做的事情
return render_template('user.html', users=users)
Run Code Online (Sandbox Code Playgroud)
我想做的事情
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.posts|length }}</td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.帖子是查询,而不是b/c的对象lazy='dynamic'.如果我更改lazy='joined',我可以执行上述操作,但随后我会在查询用户时为用户加载所有帖子.
我尝试添加.options(joinedload('posts'))到我的查询,但它说
InvalidRequestError:'User.posts'不支持对象填充 - 无法应用急切加载.
任何帮助表示赞赏.
我正在尝试将测试添加到我的基本应用程序中.访问所有内容需要登录.
这是我的测试用例类:
class MyAppTestCase(FlaskTestCaseMixin):
def _create_app(self):
raise NotImplementedError
def _create_fixtures(self):
self.user = EmployeeFactory()
def setUp(self):
super(MyAppTestCase, self).setUp()
self.app = self._create_app()
self.client = self.app.test_client()
self.app_context = self.app.app_context()
self.app_context.push()
db.create_all()
self._create_fixtures()
self._create_csrf_token()
def tearDown(self):
super(MyAppTestCase, self).tearDown()
db.drop_all()
self.app_context.pop()
def _post(self, route, data=None, content_type=None, follow_redirects=True, headers=None):
content_type = content_type or 'application/x-www-form-urlencoded'
return self.client.post(route, data=data, follow_redirects=follow_redirects, content_type=content_type, headers=headers)
def _login(self, email=None, password=None):
email = email or self.user.email
password = password or 'password'
data = {
'email': email,
'password': password,
'remember': 'y'
}
return self._post('/login', …Run Code Online (Sandbox Code Playgroud) python ×7
flask ×5
jinja2 ×2
sqlalchemy ×2
composer-php ×1
flask-login ×1
git ×1
github ×1
ide ×1
php ×1
pip ×1
werkzeug ×1