小编Jim*_*Jay的帖子

Django静态文件将无法加载

我是一个Django新手在我的第一个项目工作,并有静态文件的问题.

我使用django.contrib.auth两个模板创建了一个简单的auth系统:mysite/templates/index.htmlmysite/templates/registration/login.html.我有全局静态内容mysite/static,我希望能够访问所有应用程序呈现的所有模板.

mysite/templates/index.html包含在我访问网址时<img src="{{ STATIC_URL }}pics03.jpg"/>呈现为"static/pics03.jpg"和加载的内容localhost:8000/

mysite/templates/registration/login.html包含当我访问网址时<img src="{{ STATIC_URL }}pics03.jpg"/>也会呈现为"static/pics03.jpg"和不加载的包含"localhost:8000/accounts/login/"

在我的urls.py中,我有:

urlpatterns = patterns('',
   url(r'^$', 'mysite.views.home'), # plays index.html template
   url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
Run Code Online (Sandbox Code Playgroud)

在我的settings.py中,我有:

PROJECT_DIR = os.path.dirname(__file__)

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_DIR,'static'),
)  

STATICFILES_FINDERS = ( …
Run Code Online (Sandbox Code Playgroud)

python django static django-static

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

具有multipart/form-data的Spring security 3.2.0 RC1 csrf

我一直在使用Spring Security 3.2.0.RC1中的新csrf功能,并注意到它似乎不适用于enctype ="multipart/form-data"表单.

我有一个简单的Spring表单:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
...
<form:form action="${pageContext.request.contextPath}/model/create" modelAttribute="myForm" enctype="multipart/form-data">
Run Code Online (Sandbox Code Playgroud)

隐藏的csrf输入正在按预期呈现:

<input type="hidden" value="..." name="_csrf">
Run Code Online (Sandbox Code Playgroud)

但请求未通过csrf检查(如果我删除enctype ="multipart/form-data",它可以正常工作).我找到的唯一方法是将"?_csrf = ..."附加到我的动作网址,这很难看,因为令牌会出现在重定向的地址栏中.有没有人经历过相同/找到一个很好的解决方案?

spring spring-mvc csrf spring-security

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

Django auth /登录问题

我是Django的新手,并尝试使用django.contrib.auth.views.loginDjango 1.4 为我的网页构建一个简单的登录系统.我有一个包含以下登录表单的基本模板,然后由我网站上的其他模板页面进行扩展:

<form method="post" action="/accounts/login/">
{% csrf_token %}
<p><label for="id_username">Username:</label> <input id="id_username" type="text" name="username" maxlength="30" /></p>
<p><label for="id_password">Password:</label> <input type="password" name="password" id="id_password" /></p>
<input type="submit" value="Log in" />
<input type="hidden" name="next" value="{{ request.get_full_path }}" />
</form>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试登录时,我收到以下消息:

"禁止(403)CSRF验证失败.请求中止.失败原因:CSRF令牌丢失或不正确."

来自urls.py的相关摘录:

url(r'^accounts/login/$', 'django.contrib.auth.views.login')
Run Code Online (Sandbox Code Playgroud)

和settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)

.....

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
)
.....
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

python authentication django login

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

JUnit休眠:测试获取的惰性关联

我有一个带有延迟加载的Sites集合的User模型:

@Entity
public class User {

    @Id
    @GeneratedValue
    private Integer id;

    @OneToMany(fetch = FetchType.LAZY)
    private Set<Site> sites;

    ...
Run Code Online (Sandbox Code Playgroud)

和我的UserDao中的HQL查询,该查询通过ID加载用户,并且还提取关联的网站:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;

@Repository
public class userDaoImpl implements UserDao() {

    @Inject
    private SessionFactory sessionFactory;

    public Session getCurrentSession() {
        return sessionFactory.getCurrentSession();
    }

    public User findByIdFetchSites(final Integer id) {
        String queryString = "SELECT user FROM User user LEFT JOIN FETCH user.sites WHERE user.id = :id";
        Query qry = getCurrentSession().createQuery(queryString).setInteger("id", id);
        return qry.uniqueResult();
    }

    ...
Run Code Online (Sandbox Code Playgroud)

当我运行此Dao方法时,我想测试是否正在与用户一起获取网站。我有一个针对HSQLDB运行的JUnit测试类,如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:/test-context.xml" …
Run Code Online (Sandbox Code Playgroud)

java junit spring hibernate lazy-loading

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