Bläddra i källkod

add reader and content

husong 7 år sedan
förälder
incheckning
6796498af2
41 ändrade filer med 667 tillägg och 46 borttagningar
  1. 0 0
      common/__init__.py
  2. BIN
      common/__init__.pyc
  3. 3 0
      common/admin.py
  4. 45 0
      common/common.py
  5. BIN
      common/common.pyc
  6. 0 0
      common/migrations/__init__.py
  7. 3 0
      common/models.py
  8. 3 0
      common/tests.py
  9. 3 0
      common/views.py
  10. 22 0
      content_manage/migrations/0001_initial.py
  11. BIN
      content_manage/migrations/0001_initial.pyc
  12. 24 0
      content_manage/migrations/0002_auto_20171116_1047.py
  13. BIN
      content_manage/migrations/0002_auto_20171116_1047.pyc
  14. 29 0
      content_manage/migrations/0003_auto_20171116_1139.py
  15. BIN
      content_manage/migrations/0003_auto_20171116_1139.pyc
  16. 19 0
      content_manage/migrations/0004_auto_20171116_1253.py
  17. BIN
      content_manage/migrations/0004_auto_20171116_1253.pyc
  18. 27 0
      content_manage/models.py
  19. BIN
      content_manage/models.pyc
  20. 60 2
      content_manage/views.py
  21. BIN
      content_manage/views.pyc
  22. 19 0
      users/migrations/0002_users_real_name.py
  23. BIN
      users/migrations/0002_users_real_name.pyc
  24. 40 0
      users/migrations/0003_auto_20171116_0630.py
  25. BIN
      users/migrations/0003_auto_20171116_0630.pyc
  26. 24 0
      users/migrations/0004_auto_20171116_0702.py
  27. BIN
      users/migrations/0004_auto_20171116_0702.pyc
  28. 19 0
      users/migrations/0005_auto_20171116_0733.py
  29. BIN
      users/migrations/0005_auto_20171116_0733.pyc
  30. 19 0
      users/migrations/0006_auto_20171116_0917.py
  31. BIN
      users/migrations/0006_auto_20171116_0917.pyc
  32. 24 0
      users/migrations/0007_auto_20171116_1019.py
  33. BIN
      users/migrations/0007_auto_20171116_1019.pyc
  34. 21 3
      users/models.py
  35. BIN
      users/models.pyc
  36. 230 36
      users/views.py
  37. BIN
      users/views.pyc
  38. 20 2
      xdcjing/settings.py
  39. BIN
      xdcjing/settings.pyc
  40. 13 3
      xdcjing/urls.py
  41. BIN
      xdcjing/urls.pyc

+ 0 - 0
common/__init__.py


BIN
common/__init__.pyc


+ 3 - 0
common/admin.py

@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.

+ 45 - 0
common/common.py

@@ -0,0 +1,45 @@
+# -*-coding:utf-8 -*-
+import json
+from django.shortcuts import render
+from django.http import HttpResponse
+from django.core.serializers.json import DjangoJSONEncoder
+
+def get_user_from_request(request):
+    user = request.session.get("user", None)
+    return user
+
+def JsonResponse(data):
+    response = HttpResponse(json.dumps(data, cls=DjangoJSONEncoder),
+                            content_type="application/json")
+    response['Access-Control-Allow-Origin'] = '*'
+    return response
+
+def params(func):
+    def _wrapper(*args, **kargs):
+        request = args[0]
+        if request.method == "GET":
+            request.PARAMS = request.GET
+        elif request.method == "POST" or request.method == "DELETE":
+            if request.META.get('CONTENT_TYPE') == "application/json":
+                request.PARAMS = json.loads(request.body) if request.body else {}
+            else:
+                request.PARAMS = request.POST
+        elif request.method == "OPTIONS":
+            return JsonResponse({"code": 0, "msg": "success"})
+        else:
+            request.PARAMS = {}
+        return func(*args, **kargs)
+
+    return _wrapper
+
+
+def login_required(func):
+    def _wrapper(*args, **kargs):
+        request = args[0]
+        print request.session.keys()
+        if not ("user" in request.session):
+            # return HttpResponseRedirect("/accounts/login/")
+            res = {"code": 2, "msg": u"您尚未登录,请先登录!"}
+            return JsonResponse(res)
+        return func(*args, **kargs)
+    return _wrapper

BIN
common/common.pyc


+ 0 - 0
common/migrations/__init__.py


+ 3 - 0
common/models.py

@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.

+ 3 - 0
common/tests.py

@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.

+ 3 - 0
common/views.py

@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.

+ 22 - 0
content_manage/migrations/0001_initial.py

@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Article',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('title', models.CharField(help_text='\u4e0d\u8d85\u8fc764\u4e2a\u5b57', max_length=128, verbose_name='\u6587\u7ae0\u6807\u9898')),
+                ('img_url', models.URLField(default=b'', verbose_name='\u56fe\u7247url')),
+                ('content', models.TextField(verbose_name='\u6587\u7ae0\u5185\u5bb9', choices=[(0, '\u7b80\u4ecb'), (1, '\u4e3b\u7f16\u81f4\u8f9e'), (2, '\u7f16\u59d4\u6210\u5458'), (3, '\u6295\u7a3f\u6307\u5357'), (4, '\u9009\u9898\u6307\u5357'), (5, '\u5e74\u5ea6\u6307\u5357')])),
+            ],
+        ),
+    ]

BIN
content_manage/migrations/0001_initial.pyc


+ 24 - 0
content_manage/migrations/0002_auto_20171116_1047.py

@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('content_manage', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='article',
+            name='type',
+            field=models.SmallIntegerField(default=0, verbose_name='\u6587\u7ae0\u5206\u7c7b', choices=[(0, '\u7b80\u4ecb'), (1, '\u4e3b\u7f16\u81f4\u8f9e'), (2, '\u7f16\u59d4\u6210\u5458'), (3, '\u6295\u7a3f\u6307\u5357'), (4, '\u9009\u9898\u6307\u5357'), (5, '\u5e74\u5ea6\u6307\u5357')]),
+        ),
+        migrations.AlterField(
+            model_name='article',
+            name='content',
+            field=models.TextField(verbose_name='\u6587\u7ae0\u5185\u5bb9'),
+        ),
+    ]

BIN
content_manage/migrations/0002_auto_20171116_1047.pyc


+ 29 - 0
content_manage/migrations/0003_auto_20171116_1139.py

@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('content_manage', '0002_auto_20171116_1047'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='article',
+            name='content',
+            field=models.TextField(default=b'', verbose_name='\u6587\u7ae0\u5185\u5bb9', blank=True),
+        ),
+        migrations.AlterField(
+            model_name='article',
+            name='img_url',
+            field=models.URLField(default=b'', null=True, verbose_name='\u56fe\u7247url'),
+        ),
+        migrations.AlterField(
+            model_name='article',
+            name='title',
+            field=models.CharField(help_text='\u4e0d\u8d85\u8fc764\u4e2a\u5b57', max_length=128, null=True, verbose_name='\u6587\u7ae0\u6807\u9898'),
+        ),
+    ]

BIN
content_manage/migrations/0003_auto_20171116_1139.pyc


+ 19 - 0
content_manage/migrations/0004_auto_20171116_1253.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('content_manage', '0003_auto_20171116_1139'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='article',
+            name='content',
+            field=models.TextField(default=b'', null=True, verbose_name='\u6587\u7ae0\u5185\u5bb9', blank=True),
+        ),
+    ]

BIN
content_manage/migrations/0004_auto_20171116_1253.pyc


+ 27 - 0
content_manage/models.py

@@ -1,3 +1,30 @@
+# -*-coding:utf-8 -*-
 from django.db import models
 
 # Create your models here.
+
+class Article(models.Model):
+    """
+    文章内容表
+    """
+    ABSTRACT = 0
+    CHIEF_EDITOR = 1
+    EDITE_MMEMBER = 2
+    SUBMISSION_GUIDE = 3
+    SELECT_GUIDE = 4
+    YEAR_GUIDE = 5
+
+
+    COMMENT_TYPE = (
+        (ABSTRACT, u"简介"),
+        (CHIEF_EDITOR, u"主编致辞"),
+        (EDITE_MMEMBER,u"编委成员"),
+        (SUBMISSION_GUIDE,u"投稿指南"),
+        (SELECT_GUIDE,u"选题指南"),
+        (YEAR_GUIDE,u"年度指南"),
+    )
+
+    title = models.CharField(u"文章标题", null= True,max_length=128, help_text=u"不超过64个字")
+    img_url = models.URLField(u"图片url", null=True, default="")
+    type = models.SmallIntegerField(u"文章分类", default=0, choices=COMMENT_TYPE)
+    content = models.TextField(u"文章内容",default="", blank=True,null=True)

BIN
content_manage/models.pyc


+ 60 - 2
content_manage/views.py

@@ -1,3 +1,61 @@
-from django.shortcuts import render
-
+# -*-coding:utf-8 -*-
+from common.common import (get_user_from_request, login_required,
+                           params,JsonResponse)
+from django.views.decorators.csrf import csrf_exempt
+from models import *
 # Create your views here.
+@csrf_exempt
+@params
+def content_show(request,offset):
+
+    # obj, created = Article.objects.get_or_create(type=int(offset))
+    # if not created:
+    #     print("exit---------")
+    #     JsonResponse("exit")
+    # else:
+    #     obj.title = "hhhhhh"+offset
+    #     obj.img_url = "http://"
+    #     obj.type = int(offset)
+    #     obj.content = "hahhahahha"+offset
+
+
+    content_data = Article.objects.filter(type=int(offset)).first()
+    dict_data={}
+    if content_data:
+        dict_data["title"]=content_data.title
+        dict_data["img_url"]=content_data.img_url
+        dict_data["type"]=content_data.type
+        dict_data["content"]=content_data.content
+        res = {"code":0,"page_type":offset,"msg":"show sucess!","content_data":dict_data}
+    else:
+        res = {"code":-1,"page_type":offset,"msg":"show false!",}
+
+    return JsonResponse(res)
+
+@csrf_exempt
+@params
+def content_edit(request,offset):
+
+    data = request.PARAMS
+    # if not data:
+    #     return JsonResponse({"code": -1, "msg": u"参数不完整"})
+
+    title = data.get("title",None)
+    img_url = data.get("img_url",None)
+    content = data.get("content",None)
+    page_type = data.get("page_type",None)
+
+    # title = "ssssss"
+    # content = "gggggg"
+    obj = Article.objects.get(type=int(offset))
+
+    if obj:
+        obj.title = title
+        obj.img_url = img_url
+        obj.content = content
+        obj.save()
+        res = {"code":0, "page_type":page_type, "content":content}
+    else:
+        res = {"code":-1, "msg":"编辑失败"}
+
+    return JsonResponse(res)

BIN
content_manage/views.pyc


+ 19 - 0
users/migrations/0002_users_real_name.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='users',
+            name='real_name',
+            field=models.CharField(default=b'', max_length=32, verbose_name='\u771f\u5b9e\u59d3\u540d', blank=True),
+        ),
+    ]

BIN
users/migrations/0002_users_real_name.pyc


+ 40 - 0
users/migrations/0003_auto_20171116_0630.py

@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0002_users_real_name'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Reader',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('name', models.CharField(default=b'', max_length=32, verbose_name='\u8bfb\u8005\u6635\u79f0', blank=True)),
+                ('create_time', models.CharField(max_length=64, verbose_name='\u63d0\u95ee\u65f6\u95f4')),
+                ('question', models.TextField(default=b'', verbose_name='\u95ee\u9898\u5185\u5bb9', blank=True)),
+                ('fb_id', models.IntegerField(verbose_name='\u7ba1\u7406\u8005id', blank=True)),
+                ('fb_content', models.TextField(default=b'', verbose_name='\u95ee\u9898\u5185\u5bb9', blank=True)),
+            ],
+        ),
+        migrations.AlterField(
+            model_name='users',
+            name='permission',
+            field=models.IntegerField(default=3, verbose_name='\u6743\u9650'),
+        ),
+        migrations.AlterField(
+            model_name='users',
+            name='signup_time',
+            field=models.CharField(default=b'', max_length=64, verbose_name='\u6ce8\u518c\u65f6\u95f4', blank=True),
+        ),
+        migrations.AlterField(
+            model_name='users',
+            name='status',
+            field=models.IntegerField(default=0, verbose_name='\u72b6\u6001'),
+        ),
+    ]

BIN
users/migrations/0003_auto_20171116_0630.pyc


+ 24 - 0
users/migrations/0004_auto_20171116_0702.py

@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0003_auto_20171116_0630'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='users',
+            name='real_name',
+            field=models.CharField(default=b'', max_length=32, null=True, verbose_name='\u771f\u5b9e\u59d3\u540d', blank=True),
+        ),
+        migrations.AlterField(
+            model_name='users',
+            name='signup_time',
+            field=models.CharField(default=b'', max_length=64, null=True, verbose_name='\u6ce8\u518c\u65f6\u95f4', blank=True),
+        ),
+    ]

BIN
users/migrations/0004_auto_20171116_0702.pyc


+ 19 - 0
users/migrations/0005_auto_20171116_0733.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0004_auto_20171116_0702'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='reader',
+            name='fb_id',
+            field=models.IntegerField(null=True, verbose_name='\u7ba1\u7406\u8005id', blank=True),
+        ),
+    ]

BIN
users/migrations/0005_auto_20171116_0733.pyc


+ 19 - 0
users/migrations/0006_auto_20171116_0917.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0005_auto_20171116_0733'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='reader',
+            old_name='name',
+            new_name='readername',
+        ),
+    ]

BIN
users/migrations/0006_auto_20171116_0917.pyc


+ 24 - 0
users/migrations/0007_auto_20171116_1019.py

@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0006_auto_20171116_0917'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='reader',
+            name='fb_content',
+            field=models.TextField(default=b'', help_text='\u4e0d\u8d85\u8fc7250\u5b57', max_length=500, verbose_name='\u95ee\u9898\u56de\u590d', blank=True),
+        ),
+        migrations.AlterField(
+            model_name='reader',
+            name='question',
+            field=models.TextField(default=b'', help_text='\u4e0d\u8d85\u8fc7250\u5b57', max_length=500, verbose_name='\u95ee\u9898\u5185\u5bb9', blank=True),
+        ),
+    ]

BIN
users/migrations/0007_auto_20171116_1019.pyc


+ 21 - 3
users/models.py

@@ -8,6 +8,24 @@ class Users(models.Model):
     """
     username = models.CharField(u"用户名", max_length=32, blank=True, default="")
     password = models.CharField(u"密码", max_length=128)
-    status = models.CharField(u"状态", max_length=64)
-    permission = models.CharField(u"权限", max_length=64)
-    signup_time = models.CharField(u"注册时间", max_length=64)
+    real_name = models.CharField(u"真实姓名", max_length=32, blank=True,null=True,default="")
+    status = models.IntegerField(u"状态",default=0)
+    permission = models.IntegerField(u"权限",default=3)
+    signup_time = models.CharField(u"注册时间", max_length=64,blank=True,null=True,default="")
+
+    def __unicode__(self):
+        return self.username
+
+
+
+class Reader(models.Model):
+    """
+    读者表
+    """
+    readername = models.CharField(u"读者昵称", max_length=32, blank=True, default="")
+    create_time = models.CharField(u"提问时间", max_length=64)
+    question = models.TextField(u"问题内容",max_length=500, default="", blank=True,
+                             help_text=u"不超过250字")
+    fb_id = models.IntegerField(u"管理者id",blank=True,null=True)
+    fb_content = models.TextField(u"问题回复",max_length=500, default="", blank=True,
+                             help_text=u"不超过250字")

BIN
users/models.pyc


+ 230 - 36
users/views.py

@@ -1,49 +1,66 @@
 # -*-coding:utf-8 -*-
 import json
 import time
-from django.shortcuts import render
-from django.http import HttpResponse
-from django.core.serializers.json import DjangoJSONEncoder
+import traceback
+# from django.shortcuts import render
+# from django.http import HttpResponse
+# from django.core.serializers.json import DjangoJSONEncoder
 from django.contrib.auth.hashers import make_password, check_password
 from django.views.decorators.csrf import csrf_exempt
 from models import *
 
-def JsonResponse(data):
-    response = HttpResponse(json.dumps(data, cls=DjangoJSONEncoder),
-                            content_type="application/json")
-    response['Access-Control-Allow-Origin'] = '*'
-    return response
-
-def params(func):
-    def _wrapper(*args, **kargs):
-        request = args[0]
-        if request.method == "GET":
-            request.PARAMS = request.GET
-        elif request.method == "POST" or request.method == "DELETE":
-            if request.META.get('CONTENT_TYPE') == "application/json":
-                request.PARAMS = json.loads(request.body) if request.body else {}
-            else:
-                request.PARAMS = request.POST
-        elif request.method == "OPTIONS":
-            return JsonResponse({"code": 0, "msg": "success"})
-        else:
-            request.PARAMS = {}
-        return func(*args, **kargs)
+from common.common import (get_user_from_request, login_required,
+                           params,JsonResponse)
 
-    return _wrapper
 
 
+# @login_required
+@csrf_exempt
+@params
 def user_manage(request):
-    user = request.session.get("user", None)
+    """
+    用户管理
+    :param request:
+    :return: userdata list
+
+    """
+    # user = request.session.get("user", None)
+    data = request.PARAMS
+    search_name = data.get("search_name", None)
+    search_name = "ton"
+    print("search_name",search_name)
+    if search_name:
+        user_data = Users.objects.filter(username__icontains=search_name)
+    else:
+        user_data = Users.objects.all()
+
+    print("user_manage111",user_data)
+    data =[]
+    if user_data:
+        for list_data in user_data:
+            dict_data = {}
+            dict_data["uid"] = list_data.id
+            dict_data["username"] = list_data.username
+            dict_data["realname"] = list_data.real_name
+            dict_data["status"] = list_data.status
+            dict_data["permission"] = list_data.permission
+            data.append(dict_data)
+        res = {"code": 0, "msg": "get data success", "user_data": data}
+
+    else:
+        res = {"code": -1, "msg": "get no data!"}
 
+    print(res)
+    return JsonResponse(res)
 
+# @login_required
 @csrf_exempt
 @params
-def signup(request):
+def adduser(request):
     """
-    用户注册
+    添加用户
     :param request:
-    :return: user
+    :return: True/False
     """
     req_params = request.PARAMS
     if req_params:
@@ -53,7 +70,8 @@ def signup(request):
                                      "pbkdf2_sha256")
             status = req_params.get("status")
             permission = req_params.get("permission")
-
+            real_name = req_params.get("real_name",None)
+            print("adduser---real_name",real_name)
             print(username,password,status,permission)
 
             obj, created = Users.objects.get_or_create(username=username)
@@ -62,6 +80,7 @@ def signup(request):
             else:
                 # 保存其他信息
                 obj.username = username
+                obj.real_name = real_name
                 obj.password = password
                 obj.status = status
                 obj.permission = permission
@@ -84,13 +103,13 @@ def login(request):
     :return: True / False
     """
     data = request.PARAMS
-    username = data.get("username", None)
-    passwd = data.get("password", None)
-
 
     if not data:
         return JsonResponse({"code": -1, "msg": u"参数不完整"})
 
+    username = data.get("username", None)
+    passwd = data.get("password", None)
+
     # 获取user的password
     try:
         user = Users.objects.get(username=username)
@@ -101,13 +120,14 @@ def login(request):
     check_res = check_password(passwd, user.password)
     
     print("***********")
-    print(passwd)
-    print(user.password)
+    print(username)
+    print(user.username)
     print(check_res)
     if check_res:
-        user_info = {"uid": user.id, "username": user.username,
+        user_info = {"uid": user.id, "username": user.username,"realname": user.real_name,
                      "status": user.status, "permission": user.permission,}
 
+        print("user_info",user_info)
         request.session["user"] = user_info
         res = {"code": 0, "msg": "success", "user": user_info}
     else:
@@ -115,4 +135,178 @@ def login(request):
 
     print "set session: --> ", request.session.get("user", None)
 
+    return JsonResponse(res)
+
+
+# @login_required
+@params
+def logout(request):
+    """
+    退出
+    :param request:
+    :return:
+    """
+    try:
+        del request.session["user"]
+    except KeyError as ex:
+        pass
+    return JsonResponse({"code": 0, "msg": "success"})
+
+
+
+@csrf_exempt
+# @login_required
+@params
+def modified_password(request):
+    """
+    修改密码
+    :param request: old_password, new_password
+    :return: True / False
+    """
+    user = get_user_from_request(request)
+    req_params = request.PARAMS
+    old_password = req_params.get("old_password")
+    new_password = req_params.get("new_password")
+
+    user_obj = Users.objects.get(id=int(user["uid"]))
+    check_old = check_password(old_password, user_obj.password)
+
+    print("mmmmmmm",check_old)
+    res = {"code": 0, "msg": "success"}
+    if check_old:
+        new_pass = make_password(new_password, None, "pbkdf2_sha256")
+        user_obj.password = new_pass
+        user_obj.save()
+    else:
+        res["code"] = -1
+        res["msg"] = u"旧密码不正确,请重新输入。"
+
+    print(res)
+    return JsonResponse(res)
+
+
+@csrf_exempt
+# @login_required
+@params
+def update_user(request):
+    """
+    编辑用户信息
+    :param request: username
+    :return: True / False
+    """
+    req_params = request.PARAMS
+    username = req_params.get("username", None)
+
+    status = req_params.get("status")
+    permission = req_params.get("permission")
+    print "username --> ", username
+    print "status --> ", status
+    print "permission --> ", permission
+
+    user_obj = Users.objects.filter(username=username).first()
+    print("update-----",user_obj)
+
+
+    if user_obj:
+        user_obj.status = status
+        user_obj.permission = permission
+        user_obj.save()
+        res = {"code":0, "status":user_obj.status, "permission":user_obj.permission}
+    else:
+        res = {"code":-1, "msg":"修改失败!"}
+
+    print(res)
+    return JsonResponse(res)
+
+@csrf_exempt
+# @login_required
+@params
+def delete_user(request):
+    """
+    删除指定用户
+    :param request: username
+    :return: True / False
+    """
+    req_params = request.PARAMS
+    username = req_params.get("username", None)
+
+    print "username --> ", username
+
+    user_obj = Users.objects.filter(username=username).first()
+    if user_obj:
+        user_obj.delete()
+        res = {"code":0, "msg":"删除成功!"}
+    else:
+        res = {"code":-1, "msg":"修改失败!"}
+
+    return JsonResponse(res)
+
+
+
+
+@csrf_exempt
+# @login_required
+@params
+def reader_fb(request):
+    """
+    读者提问
+
+    """
+    data = request.PARAMS
+    search_question = data.get("search_question", None)
+
+    print("00000",search_question)
+    if search_question:
+        user_data = Reader.objects.filter(question__icontains = search_question)
+    else:
+        user_data = Reader.objects.all()
+    data =[]
+    if user_data:
+        for list_data in user_data:
+            dict_data = {}
+            dict_data["rid"] = list_data.id
+            dict_data["readername"] = list_data.readername
+            dict_data["crete_time"] = list_data.crete_time
+            dict_data["question"] = list_data.question
+            data.append(dict_data)
+        res = {"code": 0, "msg": "get data success", "reader_data": data}
+
+    else:
+        res = {"code": -1, "msg": "get no data!"}
+
+    print(res)
+    return JsonResponse(res)
+
+
+
+@csrf_exempt
+# @login_required
+@params
+def fb_question(request):
+    """
+    编辑回复信息
+    :param request: rid ,content
+    :return: True / False
+    """
+    user = get_user_from_request(request)
+    # user_id = 2
+    user_id = user["uid"]
+    req_params = request.PARAMS
+    rid = req_params.get("rid", None)
+    fb_content = req_params.get("fb_content", None)
+
+
+    reader_obj = Reader.objects.filter(id=rid).first()
+    print("update-----",reader_obj)
+
+
+    if reader_obj:
+        reader_obj.fb_content = fb_content
+        reader_obj.fb_id = user_id
+        reader_obj.save()
+        res = {"code":0, "msg":"回复成功", "fb_content":fb_content}
+    else:
+        res = {"code":-1, "msg":"修改失败!"}
+
+    print(res)
     return JsonResponse(res)

BIN
users/views.pyc


+ 20 - 2
xdcjing/settings.py

@@ -1,3 +1,4 @@
+# -*-coding:utf-8 -*-
 """
 Django settings for xdcjing project.
 
@@ -25,8 +26,9 @@ SECRET_KEY = '@jsw0@n4r#2-+_&5ehr-m(5ux-ams1n4a9+_jm=-*un67%eafl'
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
 
-ALLOWED_HOSTS = []
+ALLOWED_HOSTS = ["*"]
 
+DEFAULT_CHARSET = 'utf-8'
 
 # Application definition
 
@@ -90,7 +92,9 @@ DATABASES = {
 # Internationalization
 # https://docs.djangoproject.com/en/1.8/topics/i18n/
 
-LANGUAGE_CODE = 'en-us'
+# LANGUAGE_CODE = 'en-us'
+LANGUAGE_CODE = 'zh-hans'
+
 
 TIME_ZONE = 'UTC'
 
@@ -105,3 +109,17 @@ USE_TZ = True
 # https://docs.djangoproject.com/en/1.8/howto/static-files/
 
 STATIC_URL = '/static/'
+
+
+# SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  # 引擎
+# SESSION_CACHE_ALIAS = 'default'                            # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
+ 
+ 
+# SESSION_COOKIE_NAME = "sessionid"                        # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
+# SESSION_COOKIE_PATH = "/"                                # Session的cookie保存的路径
+# SESSION_COOKIE_DOMAIN = None                              # Session的cookie保存的域名
+# SESSION_COOKIE_SECURE = False                             # 是否Https传输cookie
+# SESSION_COOKIE_HTTPONLY = True                            # 是否Session的cookie只支持http传输
+SESSION_COOKIE_AGE = 30*60                              
+# SESSION_EXPIRE_AT_BROWSER_CLOSE = False                   # 是否关闭浏览器使得Session过期
+# SESSION_SAVE_EVERY_REQUEST = False                        # 是否每次请求都保存Session,默认修改之后才保存

BIN
xdcjing/settings.pyc


+ 13 - 3
xdcjing/urls.py

@@ -1,14 +1,24 @@
 from django.conf.urls import include, url
 from django.contrib import admin
 import users.views
+import content_manage.views
 
 urlpatterns = [
     # Examples:
     # url(r'^$', 'xdcjing.views.home', name='home'),
     # url(r'^blog/', include('blog.urls')),
 
-    url(r'^admin/', include(admin.site.urls)),
-    url(r'^login/', users.views.login),
-    url(r'^signup/', users.views.signup),
+    url(r'^admin/$', include(admin.site.urls)),
+    url(r'^login/$', users.views.login),
+    url(r'^logout/$', users.views.logout),
+    url(r'^adduser/$', users.views.adduser),
+    url(r'^updateuser/$', users.views.update_user),
+    url(r'^deleteuser/$', users.views.delete_user),
+    url(r'^modifiedpassword/$', users.views.modified_password),
+    url(r'^usermanage/$', users.views.user_manage),
+    url(r'^reader_fb/$', users.views.reader_fb),
+    url(r'^fb_question/$', users.views.fb_question),
+    url(r'^content_show-([0,1,2,3,4,5])/$', content_manage.views.content_show),
+    url(r'^content_edit-([0,1,2,3,4,5])/$', content_manage.views.content_edit),
 
 ]

BIN
xdcjing/urls.pyc