diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4b174dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.idea/ +.venv/ +.media/ +*/__pycache__/ +*/*.pyc +*/migrations +NewMediaMonitoring/local_settings.py \ No newline at end of file diff --git a/.idea/NewMediaMonitoring.iml b/.idea/NewMediaMonitoring.iml deleted file mode 100644 index a29129f..0000000 --- a/.idea/NewMediaMonitoring.iml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml deleted file mode 100644 index 9c7f58c..0000000 --- a/.idea/dataSources.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - postgresql - true - org.postgresql.Driver - jdbc:postgresql://210.77.68.250:5432/newmediaDB1 - - - sqlite.xerial - true - org.sqlite.JDBC - jdbc:sqlite:D:\python\p3\NewMediaMonitoring\db.sqlite3 - - - - - - file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/license.txt - - - file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/sqlite-jdbc-3.25.1.jar - - - file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/license.txt - - - file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/sqlite-jdbc-3.25.1.jar - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 3edce78..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index db41c88..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/NewMediaMonitoring/settings.py b/NewMediaMonitoring/settings.py index e95ae5b..809781a 100644 --- a/NewMediaMonitoring/settings.py +++ b/NewMediaMonitoring/settings.py @@ -37,6 +37,8 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'django_token', + 'corsheaders', 'bootstrap3', 'captcha', 'dashboard', @@ -47,11 +49,13 @@ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django_token.middleware.TokenMiddleware', ] ROOT_URLCONF = 'NewMediaMonitoring.urls' @@ -79,7 +83,7 @@ WSGI_APPLICATION = 'NewMediaMonitoring.wsgi.application' DATABASES = { 'default': { - 'ENGINE': 'django.contrib.gis.db.backends.postgis', + 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'newmediaDB1', 'USER': 'newmedia', 'PASSWORD': 'newmedia2020!@#', @@ -87,6 +91,7 @@ DATABASES = { 'PORT': '5432', } } + # Password validation # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators @@ -105,6 +110,11 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] +AUTHENTICATION_BACKENDS = ( + 'django.contrib.auth.backends.ModelBackend', + 'django_token.backends.TokenBackend' +) + # Internationalization # https://docs.djangoproject.com/en/2.1/topics/i18n/ @@ -133,6 +143,10 @@ MEDIA_ROOT = '/var/www/p3/NewMediaMonitoring/media/' AUTH_PROFILE_MODULE = 'djangoadmin.myadmin.UserProfile' """用户模块扩展完成""" +CORS_ORIGIN_ALLOW_ALL = True + +CORS_URLS_REGEX = r'^/polls/.*$' + try: from .local_settings import * except ImportError as e: diff --git a/NewMediaMonitoring/urls.py b/NewMediaMonitoring/urls.py index eb317f4..40cdde0 100644 --- a/NewMediaMonitoring/urls.py +++ b/NewMediaMonitoring/urls.py @@ -17,8 +17,9 @@ from django.contrib import admin from django.urls import path, include urlpatterns = [ + path('polls/', include('polls.urls')), path('admin/', admin.site.urls), path('', include('dashboard.urls')), path('captcha/', include('captcha.urls')), - path('management/',include('management.urls')) + path('management/', include('management.urls')) ] diff --git a/README.md b/README.md new file mode 100644 index 0000000..d75c3c2 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# install + +```shell +pip install -r requirements.txt + +pip install git+https://github.com/RobWeber3/django-token.git + +``` \ No newline at end of file diff --git a/dashboard/migrations/__pycache__/__init__.cpython-38.pyc b/dashboard/migrations/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..f5ce8ae Binary files /dev/null and b/dashboard/migrations/__pycache__/__init__.cpython-38.pyc differ diff --git a/dashboard/templatetags/__pycache__/__init__.cpython-38.pyc b/dashboard/templatetags/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..02d505b Binary files /dev/null and b/dashboard/templatetags/__pycache__/__init__.cpython-38.pyc differ diff --git a/management/migrations/__pycache__/__init__.cpython-38.pyc b/management/migrations/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..4290306 Binary files /dev/null and b/management/migrations/__pycache__/__init__.cpython-38.pyc differ diff --git a/polls/__init__.py b/polls/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/polls/admin.py b/polls/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/polls/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/polls/apps.py b/polls/apps.py new file mode 100644 index 0000000..d0f109e --- /dev/null +++ b/polls/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class PollsConfig(AppConfig): + name = 'polls' diff --git a/polls/migrations/__init__.py b/polls/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/polls/models.py b/polls/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/polls/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/polls/tests.py b/polls/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/polls/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/polls/urls.py b/polls/urls.py new file mode 100644 index 0000000..27c5f7c --- /dev/null +++ b/polls/urls.py @@ -0,0 +1,10 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), + path('status_500', views.status_500, name='status_500'), + path('status_401', views.status_401, name='status_401'), + path('login', views.polls_login, name='polls_login'), +] diff --git a/polls/views.py b/polls/views.py new file mode 100644 index 0000000..3fdc33d --- /dev/null +++ b/polls/views.py @@ -0,0 +1,43 @@ +from django.shortcuts import render +from django.http import HttpResponse, JsonResponse +from django.contrib.auth import get_user_model +from django.views.decorators.csrf import csrf_exempt + +# Create your views here. + + +def index(request): + username = request.GET.get('username') + password = request.GET.get('password') + print(username, password) + return JsonResponse({'status': 'error', 'message': '用户名或密码错误'}) + + +def status_500(request): + return HttpResponse(status=500) + + +def status_401(request): + return HttpResponse(status=401) + + +@csrf_exempt +def polls_login(request): + if request.method == 'POST': + phone = request.POST.get('phone') + password = request.POST.get('password') + UserModel = get_user_model() + user = UserModel.objects.filter(first_name=phone).first() + if not user: + return JsonResponse({'status': 'error', 'message': '用户名或密码错误'}) + + u = authenticate(request, username=user.username, password=password) + if u is not None: + login(request, u) + print(u) + result = dict() + return JsonResponse(result) + else: + return JsonResponse({'status': 'error', 'message': '用户名或密码错误'}) + else: + return JsonResponse({}) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f17dc87 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +Django~=2.2.15 +django-bootstrap3 +django-simple-captcha +psycopg2-binary +django-cors-headers