我想稍微离开PHP并学习Python.为了使用Python进行Web开发,我需要一个框架来帮助模板化和其他事情.
我有一个非生产服务器,用于测试所有Web开发的东西.它是Debian 7.1 LAMP堆栈,它运行MariaDB而不是常见的MySQL服务器包.
昨天我安装了Django并创建了我的第一个名为firstweb的项目.我还没有改变任何设置.
这是我的第一个大混乱.在教程中,我跟着安装了Django的人,启动了他的第一个项目,重新启动了Apache,Django从此开始工作.他去了他的浏览器,没有问题就去了Django默认页面.
但是,我必须进入我的firstweb文件夹并运行
python manage.py runserver myip:port
Run Code Online (Sandbox Code Playgroud)
它有效.没问题.但是我想知道它是否应该像这样工作,如果这会引起问题呢?
我的第二个问题是我想要设置它以便它使用我的MySQL数据库.我进入/ firstweb/firstweb下的settings.py,我看到ENGINE和NAME,但我不确定要放在这里.
然后在USER,PASSWORD和HOST区域是我的数据库及其凭据?如果我使用localhost,我可以将localhost放在HOST区域吗?
使用新的HTTP/2协议,重复HTTP请求到同一服务器所产生的开销已大大减少.
考虑到这一点,缩小和连接JavaScript/CSS文件以及将图像组合成精灵还有任何显着的性能优势吗?或者,当使用HTTP/2时,这些做法是否不再有用?
我试图从另一个python脚本访问我的Django(v1.10)应用程序数据库,并遇到一些麻烦.
这是我的文件和文件夹结构:
store
store
__init.py__
settings.py
urls.py
wsgi.py
store_app
__init.py__
admin.py
apps.py
models.py
...
db.sqlite3
manage.py
other_script.py
Run Code Online (Sandbox Code Playgroud)
根据Django的文档,我other_script.py看起来像这样:
import django
from django.conf import settings
settings.configure(DEBUG=True)
django.setup()
from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)
但它会生成运行时错误:
RunTimeError: Model class store.store_app.models.MyModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Run Code Online (Sandbox Code Playgroud)
我应该注意到我的INSTALLED_APPS列表包含store_app最后一个元素.
如果相反,我尝试传递这样的配置:
import django
from django.conf import settings
from store.store_app.apps import StoreAppConfig
settings.configure(StoreAppConfig, DEBUG=True)
django.setup()
from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)
我明白了:
AttributeError: type object 'StoreAppConfig has …Run Code Online (Sandbox Code Playgroud) 我在Django模型中有一个字段用于存储唯一(哈希)值。事实证明,即使我明确告诉Django执行区分大小写的搜索,数据库(MySQL / inno)也不会对这种类型(VARCHAR)进行区分大小写的搜索Document.objects.get(hash__exact="abcd123")。所以都返回了“ abcd123”和“ ABcd123”,我不希望这样。
class document(models.Model):
filename = models.CharField(max_length=120)
hash = models.CharField(max_length=33 )
Run Code Online (Sandbox Code Playgroud)
我可以将'hash field'更改为BinaryField,因此在数据库中它变为LONGBLOB,并且确实进行区分大小写的搜索(并且可以工作)。但是,这对我来说似乎不是很有效。有没有更好的方法(在Django中),例如添加'utf8 COLLATE'?或在这种情况下正确的Fieldtype是什么?(是的,我知道我可以改用PostgreSQL。)
我想用来ssim比较2张图片中的相似度.我收到了这个错误window_shape is incompatible with arr_in.shape.为什么?(这是什么意思?)
from skimage.measure import structural_similarity as ssim
from skimage import io
img1 = io.imread('http://pasteio.com/m85cc2eed18c661bf8a0ea7e43779e742')
img2 = io.imread('http://pasteio.com/m1d45b9c70afdb576f1e3b33d342bf7d0')
ssim( img1, img2 )
Run Code Online (Sandbox Code Playgroud)
回溯(最近一次调用最后一次):文件"",第1行,文件"/var/www/wt/local/lib/python2.7/site-packages/skimage/measure/_structural_similarity.py",第58行, structural_similarity XW = view_as_windows(X,(win_size,win_size))文件"/var/www/wt/local/lib/python2.7/site-packages/skimage/util/shape.py",第221行,在view_as_windows中引发ValueError ("
window_shape与arr_in.shape" 不兼容")ValueError:window_shape与...不兼容arr_in.shape
即使我两次输入相同的文件,我也会得到同样的错误 ssim(img1,img1)
安装Django后,我收到此错误消息(当我想运行迁移或runserver时):
您的数据库没有南数据库模块'south.db.mysql'.请选择支持的数据库,检查SOUTH_DATABASE_ADAPTER [S]设置,或从INSTALLED_APPS中删除South.
我不想使用South,它也没有在INSTALLED_APPS中定义.为什么我收到此错误?
我有一个data_class对象,想使用装饰器添加一些功能。它有效,但是类名丢失并变为defaultinstance.<locals>.SubClass.
我知道functools.wraps可以解决这个问题,但是应该在哪里/如何使用它?
from dataclasses import dataclass, fields, is_dataclass
def defaultinstance(object):
class SubClass(object):
@classmethod
def woof(cls):
print("woof")
return SubClass
@defaultinstance
@dataclass
class Dog:
name: str
paws: int
doggo = Dog(name="jack", paws=4)
print(doggo)
# defaultinstance.<locals>.SubClass(name='jack', paws=4)
Run Code Online (Sandbox Code Playgroud) django ×4
python ×4
mysql ×2
collation ×1
css ×1
debian ×1
decorator ×1
django-south ×1
http2 ×1
javascript ×1
minify ×1
scikit-image ×1
scikits ×1