我在模板中使用django paginator.它工作正常,但是当有大量页面时效果不佳.
views.py:
def blog(request):
blogs_list = Blog.objects.all()
paginator = Paginator(blogs_list, 1)
try:
page = int(request.GET.get('page', '1'))
except:
page = 1
try:
blogs = paginator.page(page)
except(EmptyPage, InvalidPage):
blogs = paginator.page(page)
return render(request, 'blogs.html', {
'blogs':blogs
})
Run Code Online (Sandbox Code Playgroud)
模板的片段:
<div class="prev_next">
{% if blogs.has_previous %}
<a class="prev btn btn-info" href="?page={{blogs.previous_page_number}}">Prev</a>
{% endif %}
{% if blogs.has_next %}
<a class="next btn btn-info" href="?page={{blogs.next_page_number}}">Next</a>
{% endif %}
<div class="pages">
<ul>
{% for pg in blogs.paginator.page_range %}
{% if blogs.number == pg %}
<li><a href="?page={{pg}}" …Run Code Online (Sandbox Code Playgroud) 我很难理解Image prefetch.在文档中没有太多解释:
"通过将远程映像下载到磁盘缓存来预取远程映像以供以后使用"
你能帮我理解下面的图片预取:
假设用户上传了配置文件图像,并且图像的URL存储在AsyncStorage中.
Image.prefetch(UserStore.profileImageUrl) 成功上传后我应该只运行一次.并且通常在组件中使用预取图像<Imagesource={{uri: UserStore.profileImageUrl}}/>
或者我应该Image.prefetch(UserStore.profileImageUrl)在组件中使用该图像之前始终运行,然后才运行<Imagesource={{uri: UserStore.profileImageUrl}}/>
假设,稍后,用户通过上传新图像来更改其个人资料图像,并且在成功上传之后,我将预取新图像.以前缓存的图像是否仍然存在于磁盘上?
考虑到上述问题,如果在使用本地反应世界时有替代解决方案来实现图像缓存,请你帮我解决一下.
我想在我的项目中使用draft.js.它有自己的CSS,我也需要导入.在文档中说:
渲染编辑器时应包含此CSS,因为这些样式设置了文本对齐,间距和其他重要功能的默认值.
id到编辑器,这样我可以设置样式(例如border,padding,min-height等)我一直在尝试使用Bootstrap Carousel并在某种程度上取得了成功.我也可以点击并更改图片.但我有一个问题.它只是没有滑动!我哪里做错了?
HTML:
<div id="my_carousel" class="carousel slide">
<ol class="carousel-indicators">
<li data-target = "#my_carousel" data-slide-to = "0" class="active"></li>
<li data-target = "#my_carousel" data-slide-to = "1"></li>
<li data-target = "#my_carousel" data-slide-to = "2"></li>
</ol>
<div class="carousel-inner i">
<div class="item active">
<img src="images/f3.jpg" alt = "i1" class="img-responsive">
</div>
<div class="item">
<img src="images/f2.jpg" alt = "i2" class="img-responsive">
</div>
<div class="item">
<img src="images/f1.jpg" alt = "i3" class="img-responsive">
</div>
</div>
<a class="carousel-control left" href="#my_carousel" data-slide = "prev">
<span class="icon-prev left"></span>
</a>
<a class="carousel-control right" href="#my_carousel" data-slide …Run Code Online (Sandbox Code Playgroud) 我正在使用内置的Django pagination来分页数据并在模板中显示.我现在想要实现jQuery来使用ajax加载页面并将其附加到模板.我如何使用jQuery做到这一点?
之前我使用的是django-endless-pagination,但由于它通过JavaScript添加条目,我的灯箱显示图像不会捕获图像元素,只显示第一次请求时加载的条目.
views.py:
def snaps(request):
snapgroup_list = SnapGroup.objects.all()
paginator = Paginator(snapgroup_list, 1)
try:
page = int(request.GET.get('page', '1'))
except:
page = 1
try:
snapgroup = paginator.page(page)
except(EmptyPage, InvalidPage):
snapgroup = paginator.page(page)
index = snapgroup.number - 1 # edited to something easier without index
max_index = len(paginator.page_range)
start_index = index - 3 if index >= 3 else 0
end_index = index + 3 if index <= max_index - 3 else max_index
page_range = paginator.page_range[start_index:end_index]
return render(request, 'snaps.html', { …Run Code Online (Sandbox Code Playgroud) 我有一个在Vue.js中创建的单页面应用程序,它利用HTML5历史模式进行路由,并且html文件与Django一起提供.
django 的urls.py是这样的:
urlpatterns = [
url(r'^$', views.home),
url(r'^admin/', admin.site.urls),
url(r'^api-token-auth/', obtain_jwt_token),
]
Run Code Online (Sandbox Code Playgroud)
和views.home:
def home(request):
return render(request, 'index.html')
Run Code Online (Sandbox Code Playgroud)
请考虑以下情形:
/)因为,主页响应单页Vuejs应用程序所需的index.html,它的工作方式与它应该的一样.
/username/12).它仍然正常工作,因为它与Vue路由器导航.
由于没有/username/12在urls.py模式,它会显示找不到网页(404) .
现在,我可以在urls.py中提供另一个模式来捕获最后一个顺序中的所有模式:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api-token-auth/', obtain_jwt_token),
url(r'^.*$', views.home),
]
Run Code Online (Sandbox Code Playgroud)
但是像媒体或静态网址这样的其他网址也会指向所有模式正则表达式.我怎么解决这个问题?
我对Memcached,Redis和Varnish非常困惑.我知道它们用于缓存,但我不知道它们有多大帮助,以及您如何知道使用哪一个.
最后,我想知道您将使用用户上传的图片和视频的网站?如果它有助于我使用Django框架.
我正在尝试使用Vuejs和Django上传图像,但我无法弄清楚如何解决它.
这是django方面:
class UserDetail(models.Model):
user = models.OneToOneField(User)
profile_picture = models.ImageField(upload_to=create_file_path)
class UserDetailSerializer(serializers.ModelSerializer):
class Meta:
model = UserDetail
fields = '__all__'
class UserDetailViewSet(viewsets.ModelViewSet):
queryset = UserDetail.objects.all()
serializer_class = UserDetailSerializer
permission_classes = [AllowAny]
@detail_route(permission_classes=[AllowAny], methods=['POST'], parser_classes=[FormParser, MultiPartParser])
def create_or_update_profile_picture(self, request):
user = request.user
#
# how to create or update user detail profile picture ?
#
Run Code Online (Sandbox Code Playgroud)
我以这种方式从Vuejs发布数据:
changeProfilePicture() {
const file_input = document.getElementById('display_profile_image');
const img = file_input.files[0];
let formData = new FormData();
formData.append("profile_picture", img);
const url = this.$store.state.website + '/api/accounts/user-detail/none/create_or_update_profile_picture/';
this.$http.post(url, formData) …Run Code Online (Sandbox Code Playgroud) 有什么区别:
fstream texfile;
textfile.open("Test.txt");
Run Code Online (Sandbox Code Playgroud)
和
ofstream textfile;
textfile.open("Test.txt");
Run Code Online (Sandbox Code Playgroud)
他们的功能是一样的吗?
我想知道是否有一种方法可以保护图像或文件在未经过身份验证时被隐藏.
假设我的网站中有一个图像,只有在该用户通过身份验证时才能看到该图像.但问题是我可以复制网址或在新标签中打开图片.
http://siteis.com/media/uploaded_files/1421499811_82_Chrysanthemum.jpg
而且,即使我没有通过身份验证,我也可以通过访问该网址来查看该特定图像.所以,我的问题是,如何保护文件,以便只有经过身份验证的用户才会看到?
更新:
视图:
def pictures(request, user_id):
user = User.objects.get(id=user_id)
all = user.photo_set.all()
return render(request, 'pictures.html',{
'pictures': all
})
Run Code Online (Sandbox Code Playgroud)
楷模:
def get_upload_file_name(instance, filename):
return "uploaded_files/%s_%s" %(str(time()).replace('.','_'), filename)
class Photo(models.Model):
photo_privacy = models.CharField(max_length=1,choices=PRIVACY, default='F')
user = models.ForeignKey(User)
image = models.ImageField(upload_to=get_upload_file_name)
Run Code Online (Sandbox Code Playgroud)
设置:
if DEBUG:
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "static-only")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "media")
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "static"),
)
Run Code Online (Sandbox Code Playgroud)
更新:
模板:
{% if pictures %}
{% for photo in pictures %}
<img …Run Code Online (Sandbox Code Playgroud)