7 |
8 |
9 |
用户中心
10 |
11 |
12 |

13 |
{{ request.session.username }}
14 |
注册时间:{{user_info.register_time}}
15 |
个人说明:{{user_info.description}}
16 |
17 |
18 |
19 |
57 |
88 |
89 |
130 | {% endblock mainbody %}
131 |
132 | {% block rightb %}
133 |
164 |
165 | {% endblock rightb %}
166 |
--------------------------------------------------------------------------------
/templates/users/user_center_info.html:
--------------------------------------------------------------------------------
1 | {% extends 'base.html' %}
2 | {% block title %}用户中心{% endblock title %}
3 | {% block fdnav %}{% endblock fdnav %}
4 |
5 | {% block mainbody %}
6 |
7 |
8 |
9 |
10 |
用户中心
11 |
12 |
13 |

14 |
{{ request.session.username }}
15 |
注册时间:{{user_info.register_time}}
16 |
个人说明:{{user_info.description}}
17 |
18 |
19 |
20 |
21 |
27 |
28 | {% for contact in contacts %}
29 |
40 | {% endfor %}
41 |
44 |
45 |
46 |
首页
47 | {% if contacts.has_previous %}
48 |
上一页
49 | {% endif %}
50 |
51 | {% for page_number in paginator.page_range %}
52 | {# 获取当前页的页码 #}
53 | {% if page_number == page.number %}
54 | {# 如果是当前页的话,选中 #}
55 |
{{page_number}}
56 | {% else %}
57 |
{{page_number}}
58 | {% endif %}
59 | {% endfor %}
60 |
61 | {% if contacts.has_next %}
62 |
下一页
63 | {% endif %}
64 |
65 |
66 |
97 |
98 |
99 |
141 | {% endblock mainbody %}
142 | {% block rightb %}
143 |
174 | {% endblock rightb %}
175 |
--------------------------------------------------------------------------------
/static/js/nprogress.js:
--------------------------------------------------------------------------------
1 | ;(function(root, factory) {
2 |
3 | if (typeof define === 'function' && define.amd) {
4 | define(factory);
5 | } else if (typeof exports === 'object') {
6 | module.exports = factory();
7 | } else {
8 | root.NProgress = factory();
9 | }
10 |
11 | })(this, function() {
12 | var NProgress = {};
13 |
14 | NProgress.version = '0.2.0';
15 |
16 | var Settings = NProgress.settings = {
17 | minimum: 0.08,
18 | easing: 'ease',
19 | positionUsing: '',
20 | speed: 200,
21 | trickle: true,
22 | trickleRate: 0.02,
23 | trickleSpeed: 800,
24 | showSpinner: true,
25 | barSelector: '[role="bar"]',
26 | spinnerSelector: '[role="spinner"]',
27 | parent: 'body',
28 | template: '
'
29 | };
30 | NProgress.configure = function(options) {
31 | var key, value;
32 | for (key in options) {
33 | value = options[key];
34 | if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;
35 | }
36 |
37 | return this;
38 | };
39 | NProgress.status = null;
40 | NProgress.set = function(n) {
41 | var started = NProgress.isStarted();
42 |
43 | n = clamp(n, Settings.minimum, 1);
44 | NProgress.status = (n === 1 ? null : n);
45 |
46 | var progress = NProgress.render(!started),
47 | bar = progress.querySelector(Settings.barSelector),
48 | speed = Settings.speed,
49 | ease = Settings.easing;
50 |
51 | progress.offsetWidth;
52 |
53 | queue(function(next) {
54 | if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();
55 |
56 | css(bar, barPositionCSS(n, speed, ease));
57 |
58 | if (n === 1) {
59 | css(progress, {
60 | transition: 'none',
61 | opacity: 1
62 | });
63 | progress.offsetWidth;
64 |
65 | setTimeout(function() {
66 | css(progress, {
67 | transition: 'all ' + speed + 'ms linear',
68 | opacity: 0
69 | });
70 | setTimeout(function() {
71 | NProgress.remove();
72 | next();
73 | }, speed);
74 | }, speed);
75 | } else {
76 | setTimeout(next, speed);
77 | }
78 | });
79 |
80 | return this;
81 | };
82 |
83 | NProgress.isStarted = function() {
84 | return typeof NProgress.status === 'number';
85 | };
86 | NProgress.start = function() {
87 | if (!NProgress.status) NProgress.set(0);
88 |
89 | var work = function() {
90 | setTimeout(function() {
91 | if (!NProgress.status) return;
92 | NProgress.trickle();
93 | work();
94 | }, Settings.trickleSpeed);
95 | };
96 |
97 | if (Settings.trickle) work();
98 |
99 | return this;
100 | };
101 | NProgress.done = function(force) {
102 | if (!force && !NProgress.status) return this;
103 |
104 | return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);
105 | };
106 |
107 | NProgress.inc = function(amount) {
108 | var n = NProgress.status;
109 |
110 | if (!n) {
111 | return NProgress.start();
112 | } else {
113 | if (typeof amount !== 'number') {
114 | amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);
115 | }
116 |
117 | n = clamp(n + amount, 0, 0.994);
118 | return NProgress.set(n);
119 | }
120 | };
121 |
122 | NProgress.trickle = function() {
123 | return NProgress.inc(Math.random() * Settings.trickleRate);
124 | };
125 |
126 | (function() {
127 | var initial = 0, current = 0;
128 |
129 | NProgress.promise = function($promise) {
130 | if (!$promise || $promise.state() === "resolved") {
131 | return this;
132 | }
133 |
134 | if (current === 0) {
135 | NProgress.start();
136 | }
137 |
138 | initial++;
139 | current++;
140 |
141 | $promise.always(function() {
142 | current--;
143 | if (current === 0) {
144 | initial = 0;
145 | NProgress.done();
146 | } else {
147 | NProgress.set((initial - current) / initial);
148 | }
149 | });
150 |
151 | return this;
152 | };
153 |
154 | })();
155 |
156 | NProgress.render = function(fromStart) {
157 | if (NProgress.isRendered()) return document.getElementById('nprogress');
158 |
159 | addClass(document.documentElement, 'nprogress-busy');
160 |
161 | var progress = document.createElement('div');
162 | progress.id = 'nprogress';
163 | progress.innerHTML = Settings.template;
164 |
165 | var bar = progress.querySelector(Settings.barSelector),
166 | perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),
167 | parent = document.querySelector(Settings.parent),
168 | spinner;
169 |
170 | css(bar, {
171 | transition: 'all 0 linear',
172 | transform: 'translate3d(' + perc + '%,0,0)'
173 | });
174 |
175 | if (!Settings.showSpinner) {
176 | spinner = progress.querySelector(Settings.spinnerSelector);
177 | spinner && removeElement(spinner);
178 | }
179 |
180 | if (parent != document.body) {
181 | addClass(parent, 'nprogress-custom-parent');
182 | }
183 |
184 | parent.appendChild(progress);
185 | return progress;
186 | };
187 |
188 | NProgress.remove = function() {
189 | removeClass(document.documentElement, 'nprogress-busy');
190 | removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');
191 | var progress = document.getElementById('nprogress');
192 | progress && removeElement(progress);
193 | };
194 |
195 | NProgress.isRendered = function() {
196 | return !!document.getElementById('nprogress');
197 | };
198 |
199 |
200 | NProgress.getPositioningCSS = function() {
201 |
202 | var bodyStyle = document.body.style;
203 |
204 | var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :
205 | ('MozTransform' in bodyStyle) ? 'Moz' :
206 | ('msTransform' in bodyStyle) ? 'ms' :
207 | ('OTransform' in bodyStyle) ? 'O' : '';
208 |
209 | if (vendorPrefix + 'Perspective' in bodyStyle) {
210 | return 'translate3d';
211 | } else if (vendorPrefix + 'Transform' in bodyStyle) {
212 | return 'translate';
213 | } else {
214 | return 'margin';
215 | }
216 | };
217 |
218 | function clamp(n, min, max) {
219 | if (n < min) return min;
220 | if (n > max) return max;
221 | return n;
222 | }
223 |
224 | function toBarPerc(n) {
225 | return (-1 + n) * 100;
226 | }
227 |
228 |
229 | function barPositionCSS(n, speed, ease) {
230 | var barCSS;
231 |
232 | if (Settings.positionUsing === 'translate3d') {
233 | barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };
234 | } else if (Settings.positionUsing === 'translate') {
235 | barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };
236 | } else {
237 | barCSS = { 'margin-left': toBarPerc(n)+'%' };
238 | }
239 |
240 | barCSS.transition = 'all '+speed+'ms '+ease;
241 |
242 | return barCSS;
243 | }
244 | var queue = (function() {
245 | var pending = [];
246 |
247 | function next() {
248 | var fn = pending.shift();
249 | if (fn) {
250 | fn(next);
251 | }
252 | }
253 |
254 | return function(fn) {
255 | pending.push(fn);
256 | if (pending.length == 1) next();
257 | };
258 | })();
259 | var css = (function() {
260 | var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],
261 | cssProps = {};
262 |
263 | function camelCase(string) {
264 | return string.replace(/^-ms-/, 'ms-').replace(/-([\da-z])/gi, function(match, letter) {
265 | return letter.toUpperCase();
266 | });
267 | }
268 |
269 | function getVendorProp(name) {
270 | var style = document.body.style;
271 | if (name in style) return name;
272 |
273 | var i = cssPrefixes.length,
274 | capName = name.charAt(0).toUpperCase() + name.slice(1),
275 | vendorName;
276 | while (i--) {
277 | vendorName = cssPrefixes[i] + capName;
278 | if (vendorName in style) return vendorName;
279 | }
280 |
281 | return name;
282 | }
283 |
284 | function getStyleProp(name) {
285 | name = camelCase(name);
286 | return cssProps[name] || (cssProps[name] = getVendorProp(name));
287 | }
288 |
289 | function applyCss(element, prop, value) {
290 | prop = getStyleProp(prop);
291 | element.style[prop] = value;
292 | }
293 |
294 | return function(element, properties) {
295 | var args = arguments,
296 | prop,
297 | value;
298 |
299 | if (args.length == 2) {
300 | for (prop in properties) {
301 | value = properties[prop];
302 | if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);
303 | }
304 | } else {
305 | applyCss(element, args[1], args[2]);
306 | }
307 | }
308 | })();
309 |
310 | function hasClass(element, name) {
311 | var list = typeof element == 'string' ? element : classList(element);
312 | return list.indexOf(' ' + name + ' ') >= 0;
313 | }
314 |
315 | function addClass(element, name) {
316 | var oldList = classList(element),
317 | newList = oldList + name;
318 |
319 | if (hasClass(oldList, name)) return;
320 | element.className = newList.substring(1);
321 | }
322 |
323 | function removeClass(element, name) {
324 | var oldList = classList(element),
325 | newList;
326 |
327 | if (!hasClass(element, name)) return;
328 | newList = oldList.replace(' ' + name + ' ', ' ');
329 |
330 | element.className = newList.substring(1, newList.length - 1);
331 | }
332 | function classList(element) {
333 | return (' ' + (element.className || '') + ' ').replace(/\s+/gi, ' ');
334 | }
335 | function removeElement(element) {
336 | element && element.parentNode && element.parentNode.removeChild(element);
337 | }
338 |
339 | return NProgress;
340 | });
341 |
342 |
--------------------------------------------------------------------------------
/templates/blackmain/goodclass.html:
--------------------------------------------------------------------------------
1 | {% extends 'base.html' %}
2 | {% block title %}精品资源{% endblock title %}
3 | {% block fdnav %}{% endblock fdnav %}
4 |
5 | {% block mainbody %}
6 |
7 |
8 |
56 |
57 |
58 |
精品教程
59 |
60 | {% for good in list1 %}
61 |
62 |

63 |
{{good.title}}
64 |
B币:{{good.source_valuemarks}}
65 |
66 | {% endfor %}
67 |
68 |
69 | {% for good in list2 %}
70 |
71 |

72 |
{{good.title}}
73 |
B币:{{good.source_valuemarks}}
74 |
75 | {% endfor %}
76 |
77 |
78 | {% for good in list3 %}
79 |
80 |

81 |
{{good.title}}
82 |
B币:{{good.source_valuemarks}}
83 |
84 | {% endfor %}
85 |
86 |
87 |
88 |
89 |
90 |
91 |
首页
92 | {% if contacts.has_previous %}
93 |
上一页
94 | {% endif %}
95 |
96 | {% for page_number in paginator.page_range %}
97 | {# 获取当前页的页码 #}
98 | {% if page_number == page.number %}
99 | {# 如果是当前页的话,选中 #}
100 |
{{page_number}}
101 | {% else %}
102 |
{{page_number}}
103 | {% endif %}
104 | {% endfor %}
105 |
106 | {% if contacts.has_next %}
107 |
下一页
108 | {% endif %}
109 |
110 |
111 |
112 |
113 | {% endblock mainbody %}
114 |
115 | {% block rightb %}
116 |
155 | {% endblock rightb %}
156 |
--------------------------------------------------------------------------------
/templates/other/contentzy.html:
--------------------------------------------------------------------------------
1 | {% extends 'base.html' %}
2 | {% block title %}分享资源{% endblock title %}
3 | {% block fdnav %}{% endblock fdnav %}
4 |
5 | {% block mainbody %}
6 |
7 |
8 |
9 |
10 |
{{title}}
11 |
12 |
13 |

14 |
15 |
16 |
{{title}}
17 |
所需B币:{{source_valuemarks}}
18 |
兑换人数:{{load_nums}}
19 |
浏览人数:{{click_nums}}
20 |
市场价格:{{source_price}}
21 |
提醒:每人只能兑换一次
22 |
23 |
24 |
25 |
26 |
27 |
资源详情
28 |
29 |
30 |
分享者:{{share_name}}
31 |
分享时间:{{share_time}}
32 |
资源id:{{source_id}}
33 |
34 |
35 |
资源介绍:
36 |
{{content}}
37 |
38 |
39 |
网盘/开源地址
40 | {% for buycheck in buysource %}
41 | {% ifequal buycheck.user request.session.username %}
42 |
网盘/开源地址:{{source_bgurl}}  密码:{{source_psw}}
43 | {% endifequal %}
44 | {% endfor %}
45 |
46 |
47 |
48 |
49 |
50 |
90 |
118 |
119 |
120 |
121 | {% endblock mainbody %}
122 |
123 | {% block rightb %}
124 |
155 |
200 |
201 | {% endblock rightb %}
202 |
203 |
--------------------------------------------------------------------------------
44 | 1.所有人员皆是本着自愿的原则购买vip,赞助本站,支持平台的运营,便于大家相互分享,不涉及任何商业利益行为。 45 | 46 | 2.本站资源由网站粉丝投稿,版权归资源原创所有,仅供学习交流,请于下载学习后24小时内删除,如侵犯了你的权益,请及时联系以便本站及时删除。 47 | 48 | 温馨提示:以任何方式,赞助本站者,均视为同意 以上声明,否则,请自觉离开,谢谢合作。 49 |
50 |