小编KRT*_*Tac的帖子

PHP中的全局变量是否被视为不良做法?如果是这样,为什么?

function foo () {
    global $var;
    // rest of code
}
Run Code Online (Sandbox Code Playgroud)

在我的小PHP项目中,我通常采用程序方式.我通常有一个包含系统配置的变量,当我需要在函数中访问此变量时,我会这样做global $var;.

这是不好的做法吗?

php global global-variables

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

C#中纬度/经度值的双精度或十进制数

在C#中存储地理位置数据时使用的最佳数据类型是什么?我会使用十进制来确切,但对十进制浮点数的操作比二进制浮点数(双)慢.

我读到大多数时候你不需要经纬度或精度超过6或7位数的精度.那么双重的不精确性是否重要,或者可以被忽略?

c# latitude-longitude geopoints

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

PostgreSQL:在大型数据库上定义主键

我正在计划一个数据库来存储大量文本.(博客文章,新闻文章等)数据库需要有标题,内容(最多50k字符),日期,链接和语言字段.在一个链接上不能发生相同的内容.旧内容(例如,早于30天)将被删除.

现在,问题是主键.我可以设置一个自动递增(SERIAL类型)字段并将其用作主键.但是,这似乎是愚蠢的,浪费了光盘空间,因为该领域不会用于任何目的,而是成为主键.(并且该字段最终可能会耗尽?或者总是存在其他性能问题:插入的每个新行的内容都需要检查重复项.因此,我提出的主键的另一个解决方案是计算内容+链接值的sha256哈希,然后将其放入新的"哈希"列并将其用作主键.一石二鸟.当然,问题是哈希冲突.这是一个很大的威胁吗?

我对PostgreSQL没有任何经验,对DBMS的经验也很少,所以在创建一个具有高速公路蜗牛性能特征的数据库之前,我会很感激第二意见(可怕的比较).

如果您对大型数据库有任何经验,请在这里帮助我.在我的情况下,将64个字符的字符串设置为主键字段是个好主意吗?(因为我的印象是通常这是避免的)

sql database postgresql database-design

9
推荐指数
2
解决办法
9977
查看次数

WTForms中的十进制字段舍入

我有一个包含价格十进制字段的表单,如下所示:

from flask.ext.wtf import Form
import wtforms
from wtforms.validators import DataRequired
from decimal import ROUND_HALF_UP

class AddListingBase(Form):
    title = wtforms.StringField(validators=[DataRequired()])
    details = wtforms.TextAreaField(validators=[DataRequired()])
    price = wtforms.DecimalField(places=2, rounding=ROUND_HALF_UP, validators=[DataRequired()])
Run Code Online (Sandbox Code Playgroud)

当我提交表单时,小数值被赋予舍入到2位小数,但这种情况从未发生过.我总是得到指定的值(例如99.853是99.853,而不是应该是99.85).

python wtforms flask-wtforms

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

针对多种内容类型的评论表的最佳解决方案

我正在为我正在建设的网站设计一个评论表.用户将能够上传图像,链接视频并将音频文件添加到配置文件.

这些类型的内容中的每一种都必须是可评论的.现在我想知道最好的方法是什么.

我目前的选择是:

  1. 使用comment_id和_id为每个内容类型(comments_videos,...)提供一个大的注释表和一个链接表.

  2. 将评论按其内容的类型分开.因此,每种类型的内容都有自己的注释表,其中包含该类型的注释.

sql database database-design

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

Flask + SQLAlchemy邻接列表backref错误

我有以下型号:

class Category(db.Model):
    __tablename__ = 'categories'

    id = db.Column(db.Integer, primary_key=True)
    parent_id = db.Column(db.Integer, db.ForeignKey(id), nullable=True)
    level = db.Column(db.SmallInteger)
    name = db.Column(db.String(200))
    children = db.relationship('Category', backref=backref('parent', remote_side=id))

    def __repr__(self):
        return '<Category %r>' % (self.name)
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.我总是得到以下错误:

NameError: name 'backref' is not defined
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python orm sqlalchemy flask flask-sqlalchemy

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

使用Flask Cache和memcached存储简单的键值对

如何使用Flask Cache存储简单的键值对?像这样的东西:

cache.set('key', 'some value')
cache.get('key')
Run Code Online (Sandbox Code Playgroud)

现在我只使用cache.cached()装饰器存储函数的返回值.该方法接缝工作,但我不知道如何在它自己超时之前手动清除该函数的缓存.

理想情况下,我希望能够根据键设置缓存值,如示例中所示.这可能使用memcached作为后端吗?

python caching flask flask-cache

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

PostgreSQL:为什么我可以使用设置的密码连接到用户而无需提供密码?

创建新用户john后:

CREATE USER john PASSWORD 'test';
CREATE DATABASE johndb OWNER john;
我可以通过以下方式连接到PostgreSQL服务器:
psql -U john johndb
问题是psql从不要求我输入密码.由于显而易见的原因,我真的需要知道什么是错的.

sql database passwords postgresql

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

如何将 UTF-8 字符转换为 ASCII 以在 URL 中使用?

我想自动转换 UTF-8 字符â Ù á ? ?a U a C G以便它们在 URL 中是可以接受的。

到目前为止,我有这个:

Encoding sourceEncoding = Encoding.GetEncoding(28591); // ISO-8859-1

byte[] asciiBytes = Encoding.Convert(sourceEncoding, Encoding.ASCII, sourceEncoding.GetBytes(<source text>));

String asciiString = Encoding.UTF8.GetString(asciiBytes);
Run Code Online (Sandbox Code Playgroud)

这种方法有两个问题:

  1. 这适用于某些字符(? 和 ?),但对于其他字符(â、Ù、á),它会返回一个问号代替该字符。
  2. 整个站点使用 UTF-8,而不是 ISO-8859-1,但是当我将 sourceEncoding 设置为 Encoding.UTF8 时,所有字符都转换为问号,因此它根本不起作用。

有什么想法可以让我完成这项工作吗?

.net c# asp.net dotnetnuke

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