我正在尝试直接使用来自亚马逊的S3服务的REST API,我无法理解规范请求是什么.
我的理解是:
然后,问题是:
在我的工作中,我们希望运行具有多个数据库的服务器.当您访问类似http://myapp.webpage.com或的URL时,应该进行数据库切换http://other.webpage.com.我们只想运行一个服务器实例,并在HTTP请求时切换数据库并返回相应的响应.
我们一直在寻找一种可持续的"Django友好"解决方案.在我们的调查中,我们找到了可行的方法,但我们没有足够的信息.
每当服务器收到HTTP请求时,django中间件就会运行.
在这里进行数据库切换可能是最好的选择,但据我所知只使用django数据库路由器只允许更改模型或组或模型的数据库.
另一个选择是在中间件中设置django模型管理器实例,并强制所有模型objects从自定义中间件中的添加属性重新分配属性.
我的最后一个选择是在中间件接收的请求对象中创建一个新属性,返回database aliasfrom settings.py和在每个模型查询中使用using方法.
创建一个使用过去三个选项的mixin,但我必须在所有基于类的视图中设置mixin.如果程序员忘记设置mixin并且它来到生产服务器,那么数据可能(或停止在)正确的数据库中,我不想承担风险.
此选项有效,但不建议使用,风险太大.
middlewares.py
import django.conf as conf
import os.path
class SelectDB(object):
def process_request(self, request):
print request.META['HTTP_REFERER']
file_database = open("booklog/database.txt", "r")
database = file_database.read(10)
file_database.close()
if database != 'default':
conf.settings.DATABASES['default']['NAME'] = database
Run Code Online (Sandbox Code Playgroud)
任何有助于我们解决的信息将不胜感激.
django django-middleware django-models django-managers django-database
为了看到这个可能的错误,您需要打开两个浏览器和一些插件来获取/设置cookie.
如果你在django 1.7中创建一个新项目并访问管理站点(/admin),并在第一个broser中成功登录并获取sessionid和csrftokencookie并将它们设置到第二个浏览器登录页面并设置随机用户和密码,你将获得一个CSRF错误,如果您在浏览器中返回,则表示您已登录.
怎么能避免这个?
我是这个工具的新手,正在尝试创建与数据库的MySQL连接,但是当我按下“测试”按钮时,它会显示以下消息:
Error connecting to database [MySQL (_configuracionesEF)] :org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
org.gjt.mm.mysql.Driver
org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
org.gjt.mm.mysql.Driver
at org.pentaho.di.core.database.Database.normalConnect(Database.java:472)
at org.pentaho.di.core.database.Database.connect(Database.java:370)
at org.pentaho.di.core.database.Database.connect(Database.java:341)
at org.pentaho.di.core.database.Database.connect(Database.java:331)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2783)
at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:597)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) …Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
#include <string.h>
#include <ctype.h>
void trinanguloNumeros(){
char caracter = 'y';
int iTamano;
while (caracter == 'Y' || caracter == 'y') {
printf("Realizar triangulo:\n");
printf("De que tamaño desea su triangulo? [1-20]");
scanf("%i", &iTamano);
int i,j;
for(i=1; i<= iTamano; i++ ){
for(j=1; j <= i; j++){
printf("%i", j);
}
printf("\n");
}
printf("Desea Intentar nuevamente? [y/n]\n");
scanf("%c", &caracter);
printf("%c", caracter);
}
printf("Termina!!");
}
int main(void){
trinanguloNumeros();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
scanfvar 的第二个caracter不起作用并打破 while循环.我不知道为什么这会打破循环并且不再设置变量.