@@ -5,6 +5,7 @@ from __future__ import division |
||
| 5 | 5 |
import os |
| 6 | 6 |
import random |
| 7 | 7 |
|
| 8 |
+import records |
|
| 8 | 9 |
import shortuuid |
| 9 | 10 |
from curtail_uuid import CurtailUUID |
| 10 | 11 |
from django.conf import settings |
@@ -34,6 +35,7 @@ from utils.thumbnail_utils import make_thumbnail |
||
| 34 | 35 |
from utils.url_utils import img_url, share_url |
| 35 | 36 |
|
| 36 | 37 |
|
| 38 |
+db = records.Database(settings.DATABASE_URL['default']) |
|
| 37 | 39 |
r = settings.REDIS_CACHE |
| 38 | 40 |
|
| 39 | 41 |
|
@@ -884,45 +886,62 @@ def pai2_home_api(request): |
||
| 884 | 886 |
num = int(request.POST.get('num', settings.PAI2_HOME_PER_PAGE))
|
| 885 | 887 |
|
| 886 | 888 |
# 执行原生 SQL 语句,获取首页照片列表 |
| 887 |
- cursor = connection.cursor() |
|
| 888 |
- cursor.execute(PAI2_HOME_API.format( |
|
| 889 |
+ # cursor = connection.cursor() |
|
| 890 |
+ # cursor.execute(PAI2_HOME_API.format( |
|
| 891 |
+ # user_id=user_id, |
|
| 892 |
+ # offset=0, |
|
| 893 |
+ # rows=settings.PAI2_HOME_MAX_ROWS, |
|
| 894 |
+ # )) |
|
| 895 |
+ # rows = cursor.fetchall |
|
| 896 |
+ |
|
| 897 |
+ # 使用 records 执行原生 SQL 语句,获取首页照片列表 |
|
| 898 |
+ rows = db.query(PAI2_HOME_API.format( |
|
| 889 | 899 |
user_id=user_id, |
| 890 | 900 |
offset=0, |
| 891 | 901 |
rows=settings.PAI2_HOME_MAX_ROWS, |
| 892 |
- )) |
|
| 893 |
- rows = cursor.fetchall() |
|
| 902 |
+ )).all() |
|
| 894 | 903 |
|
| 895 | 904 |
# 首页照片分页 |
| 896 | 905 |
rows, left = pagination(rows, page, num) |
| 897 | 906 |
|
| 898 | 907 |
# 首页照片信息 |
| 899 |
- rows = [{
|
|
| 900 |
- 'group_id': row[0], |
|
| 901 |
- 'group_name': row[1], |
|
| 902 |
- 'group_default_avatar': row[2], |
|
| 903 |
- 'group_avatar': row[3], |
|
| 904 |
- 'group_from': row[4], |
|
| 905 |
- 'photo_id': row[5], |
|
| 906 |
- 'photo_url': img_url(row[6]), |
|
| 907 |
- 'photo_w': row[7], |
|
| 908 |
- 'photo_h': row[8], |
|
| 909 |
- 'photo_thumbnail_url': img_url(row[9]), |
|
| 910 |
- 'photo_thumbnail_w': row[10], |
|
| 911 |
- 'photo_thumbnail_h': row[11], |
|
| 912 |
- 'photo_thumbnail2_url': img_url(row[12]), |
|
| 913 |
- 'photo_thumbnail2_w': row[13], |
|
| 914 |
- 'photo_thumbnail2_h': row[14], |
|
| 915 |
- 'photo_share_url': share_url(row[5]), # Warning: Index of This Line is 5 |
|
| 916 |
- 'user_id': row[15], |
|
| 917 |
- 'nickname': row[16], |
|
| 918 |
- 'avatar': row[17], |
|
| 919 |
- 'comment_num': row[18], |
|
| 920 |
- 'thumbup_num': row[19], |
|
| 921 |
- 'photo_from': row[20], |
|
| 922 |
- 'created_at': row[21], |
|
| 923 |
- } for row in rows] |
|
| 924 |
- |
|
| 908 |
+ # rows = [{
|
|
| 909 |
+ # 'group_id': row[0], |
|
| 910 |
+ # 'group_name': row[1], |
|
| 911 |
+ # 'group_default_avatar': row[2], |
|
| 912 |
+ # 'group_avatar': row[3], |
|
| 913 |
+ # 'group_from': row[4], |
|
| 914 |
+ # 'photo_id': row[5], |
|
| 915 |
+ # 'photo_url': img_url(row[6]), |
|
| 916 |
+ # 'photo_w': row[7], |
|
| 917 |
+ # 'photo_h': row[8], |
|
| 918 |
+ # 'photo_thumbnail_url': img_url(row[9]), |
|
| 919 |
+ # 'photo_thumbnail_w': row[10], |
|
| 920 |
+ # 'photo_thumbnail_h': row[11], |
|
| 921 |
+ # 'photo_thumbnail2_url': img_url(row[12]), |
|
| 922 |
+ # 'photo_thumbnail2_w': row[13], |
|
| 923 |
+ # 'photo_thumbnail2_h': row[14], |
|
| 924 |
+ # 'photo_share_url': share_url(row[5]), # Warning: Index of This Line is 5 |
|
| 925 |
+ # 'user_id': row[15], |
|
| 926 |
+ # 'nickname': row[16], |
|
| 927 |
+ # 'avatar': row[17], |
|
| 928 |
+ # 'comment_num': row[18], |
|
| 929 |
+ # 'thumbup_num': row[19], |
|
| 930 |
+ # 'photo_from': row[20], |
|
| 931 |
+ # 'created_at': row[21], |
|
| 932 |
+ # } for row in rows] |
|
| 933 |
+ |
|
| 934 |
+ # [row.update({
|
|
| 935 |
+ # 'thumbup': get_group_photo_thumbup_flag(row['photo_id'], user_id), |
|
| 936 |
+ # 'porder': get_lensman_order_record(row['photo_id'], user_id) if row['photo_from'] == GroupPhotoInfo.SESSION_GROUP else {}
|
|
| 937 |
+ # }) for row in rows] |
|
| 938 |
+ |
|
| 939 |
+ rows = [dict(row) for row in rows] |
|
| 925 | 940 |
[row.update({
|
| 941 |
+ 'photo_url': img_url(row['photo_path']), |
|
| 942 |
+ 'photo_thumbnail_url': img_url(row['photo_thumbnail_path']), |
|
| 943 |
+ 'photo_thumbnail2_url': img_url(row['photo_thumbnail2_path']), |
|
| 944 |
+ 'photo_share_url': share_url(row['photo_id']), |
|
| 926 | 945 |
'thumbup': get_group_photo_thumbup_flag(row['photo_id'], user_id), |
| 927 | 946 |
'porder': get_lensman_order_record(row['photo_id'], user_id) if row['photo_from'] == GroupPhotoInfo.SESSION_GROUP else {}
|
| 928 | 947 |
}) for row in rows] |
@@ -961,7 +980,7 @@ def lensman_photo_price(request): |
||
| 961 | 980 |
else: |
| 962 | 981 |
# 获取摄影师定价 |
| 963 | 982 |
# TODO, 此处需要完整的摄影师定价 |
| 964 |
- price = 999 if photo_type == 'origin' else 666 |
|
| 983 |
+ price = 999 if photo_type == 'origin' else 299 |
|
| 965 | 984 |
|
| 966 | 985 |
r.set(lensman_photo_price_key, price) |
| 967 | 986 |
|
@@ -130,6 +130,31 @@ DATABASES = {
|
||
| 130 | 130 |
} |
| 131 | 131 |
} |
| 132 | 132 |
|
| 133 |
+SCHEMES = {
|
|
| 134 |
+ 'django.db.backends.postgresql_psycopg2': 'postgres', |
|
| 135 |
+ 'django.db.backends.postgresql_psycopg2': 'postgresql', |
|
| 136 |
+ 'django.db.backends.postgresql_psycopg2': 'pgsql', |
|
| 137 |
+ 'django.contrib.gis.db.backends.postgis': 'postgis', |
|
| 138 |
+ 'django.db.backends.mysql': 'mysql', |
|
| 139 |
+ # 'django.db.backends.mysql': 'mysql2', |
|
| 140 |
+ 'django.contrib.gis.db.backends.mysql': 'mysqlgis', |
|
| 141 |
+ 'mysql.connector.django': 'mysql-connector', |
|
| 142 |
+ 'django.contrib.gis.db.backends.spatialite': 'spatialite', |
|
| 143 |
+ 'django.db.backends.sqlite3': 'sqlite', |
|
| 144 |
+ 'django.db.backends.oracle': 'oracle', |
|
| 145 |
+ 'django.contrib.gis.db.backends.oracle': 'oraclegis', |
|
| 146 |
+} |
|
| 147 |
+ |
|
| 148 |
+DATABASE_URL = {
|
|
| 149 |
+ k: '{scheme}://{user}:{password}@{host}:{port}/{name}'.format(
|
|
| 150 |
+ scheme=SCHEMES[v.get('ENGINE', '')],
|
|
| 151 |
+ user=v.get('USER', 'root'),
|
|
| 152 |
+ password=v.get('PASSWORD', ''),
|
|
| 153 |
+ host=v.get('HOST', 'localhost'),
|
|
| 154 |
+ port=v.get('PORT', 6039),
|
|
| 155 |
+ name=v.get('NAME', '')
|
|
| 156 |
+ ) for k, v in DATABASES.iteritems() |
|
| 157 |
+} |
|
| 133 | 158 |
|
| 134 | 159 |
# Internationalization |
| 135 | 160 |
# https://docs.djangoproject.com/en/1.8/topics/i18n/ |
@@ -15,6 +15,7 @@ kkconst==1.1.2 |
||
| 15 | 15 |
pep8==1.6.2 |
| 16 | 16 |
pillow==2.9.0 |
| 17 | 17 |
pytz==2015.7 |
| 18 |
+records==0.4.3 |
|
| 18 | 19 |
redis==2.10.5 |
| 19 | 20 |
shortuuid==0.4.2 |
| 20 | 21 |
uWSGI==2.0.11.1 |
@@ -2,8 +2,8 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
PAI2_HOME_API = ( |
| 4 | 4 |
r"select " |
| 5 |
- r"T1.group_id, T2.group_name, T2.group_default_avatar, T2.group_avatar, T2.group_from, T3.id, T3.photo_path, " |
|
| 6 |
- r"T3.photo_w, T3.photo_h, T3.photo_thumbnail_path, T3.photo_thumbnail_w, T3.photo_thumbnail_h, " |
|
| 5 |
+ r"T1.group_id, T2.group_name, T2.group_default_avatar, T2.group_avatar, T2.group_from, T3.id as photo_id, " |
|
| 6 |
+ r"T3.photo_path, T3.photo_w, T3.photo_h, T3.photo_thumbnail_path, T3.photo_thumbnail_w, T3.photo_thumbnail_h, " |
|
| 7 | 7 |
r"T3.photo_thumbnail2_path, T3.photo_thumbnail2_w, T3.photo_thumbnail2_h, T3.user_id, T3.nickname, T3.avatar, " |
| 8 | 8 |
r"T3.comment_num, T3.thumbup_num, T3.photo_from, T3.created_at " |
| 9 | 9 |
r"from (select * from group_groupuserinfo where user_id='{user_id}' and user_status=1) as T1 "
|