小编cod*_*ool的帖子

在jinja2模板中创建指向Flask应用程序URL的链接

在我的Flask应用程序中,我有一个显示帖子的视图

@post_blueprint.route('/post/<int:year>/<int:month>/<title>')
def get_post(year,month,title):
    # My code
Run Code Online (Sandbox Code Playgroud)

要显示最后10个条目,我有以下视图:

@post_blueprint.route('/posts/')
def get_all_posts():
    # My code
    return render_template('p.html',posts=posts)
Run Code Online (Sandbox Code Playgroud)

现在,当我显示最后10个帖子时,我想将帖子的标题转换为超链接.目前我必须在我的jinja模板中执行以下操作来实现此目的:

<a href="/post/{{year}}/{{month}}/{{title}}">{{title}}</a>
Run Code Online (Sandbox Code Playgroud)

有没有办法避免硬编码网址?

就像url_for用于创建Flask网址的函数一样:

url_for('view_name',**arguments)
Run Code Online (Sandbox Code Playgroud)

我试过寻找一个,但我,我找不到它.

python jinja2 url-for flask

35
推荐指数
1
解决办法
7万
查看次数

没有参数的Scala方法

在Scala中,有两种方法可以定义一个不带参数的方法

    1 def a=println("hello")

    2 def a()=println("hello")
Run Code Online (Sandbox Code Playgroud)

这两种方法完全相同,但(2)可以使用和不使用括号来调用.

在Scala中是否有任何特殊原因允许使用此功能.它会让我感到困惑,何时使用?

methods scala parentheses

18
推荐指数
3
解决办法
9911
查看次数

我是否应该在版本控制下保留通过alembic生成的数据库迁移脚本

我在我的实际网站上使用SQLAlchemy和PostgreSQL.对于数据库迁移,我使用的是alembic.关于实现这一目标的最佳策略,我有一些问题.

  1. 我是否需要将数据库迁移脚本保留在版本控制之下?

  2. 我使用Fabric进行自动部署.我应该手动运行迁移脚本还是让它自动化?

git sqlalchemy database-migration alembic

8
推荐指数
1
解决办法
1218
查看次数

Neo4j独立与嵌入式服务器?

我想知道neo4j这两个实现之间的区别是什么.两种技术的当然名称都是不言自明的,但仍有哪些主要区别?在决定在项目中使用哪种技术时应考虑哪些因素?利弊.

PS对不起,如果这是一个重复的问题,但我搜索,并没有找到任何问题,谁回答我的问题.

embedding neo4j

7
推荐指数
1
解决办法
3308
查看次数

如何在argparse中添加子分析符的可选位置参数?

我正在尝试使用argparse模块向多个subparser添加所需的输入文件名和可选的输出文件名.

这是我的尝试:

# test_argparse.py

import argparse

def setup_parser():

    parser = argparse.ArgumentParser(prog='test_argparse.py',
                            formatter_class=argparse.RawDescriptionHelpFormatter,
                            description='Testing the argparse module.')

    parser.add_argument('--version', action='version', version='%(prog)s 1.0')

    subparsers = parser.add_subparsers()
    parser_actionA = subparsers.add_parser('actionA')
    parser_actionB = subparsers.add_parser('actionB')
    parser_actionC = subparsers.add_parser('actionC')

    parser.add_argument('infile', nargs=1, help='input mesh file name')
    parser.add_argument('outfile', nargs='?', help='output mesh file name')

    return parser

if __name__ == '__main__':
    parser = setup_parser()
    args = parser.parse_args()
    print args
Run Code Online (Sandbox Code Playgroud)

如果我执行这个:

python test_argparse.py actionA infile outfile
Run Code Online (Sandbox Code Playgroud)

它不起作用,我得到的是:

usage: test_argparse.py [-h] [--version]
                    {actionA,actionB,actionC} ... infile [outfile]
test_argparse.py: error: unrecognized arguments: infile
Run Code Online (Sandbox Code Playgroud)

python python-2.7 argparse

4
推荐指数
1
解决办法
3672
查看次数

Django模型中managed = False选项的效用

在django模型中,我们有一个名为managed的选项,可以设置为True或False

根据文档,该选项的唯一区别是表是否将由django管理.django或我们的管理有什么不同吗?

使用一个选项而不是其他选项有什么优缺点吗?

我的意思是为什么我们选择managed = False.它会给出一些影响我代码的额外控制或权力吗?

django django-models

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

基于python的webapp中的并发处理

我正在开发flask,python,sqlalchemy和postgresql上的web应用程序.我的问题是关于此应用程序中的并发处理.

我是如何编写应用程序的:

我以在数据库中添加用户为例.我发布了表单并调用了一个视图.我处理所有表单数据,然后调用add_user(*arg),它使用sqlalchemy代码在数据库中插入用户并在成功执行时返回,并从视图返回响应.

我假设:

好吧,现在我假设我的网络服务器(我尚未决定)将产生一个线程或一个进程,如果两个用户同时尝试注册并将处理所有的concurreny要求.

  1. 我需要在这里编写线程代码吗?通过线程代码我的意思是在写入之前我获得一个锁并在写入后释放它.
  2. 我对Web开发和多线程/多处理编程很陌生,并且想要一些关于如何编写可以很好地处理并发性的Web应用程序的指导.
  3. 从start开始编写并发处理是正确的,或者当大量并发用户使用webapp时,应该考虑这种想法.即使它应该在以后完成,我想要一些关于它的指针.

基本上我不知道webapp开发的并发部分.如果您可以从我可以了解更多信息的地方指出资源,那将非常有帮助.

python postgresql concurrency multithreading web-applications

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