:sparkles: Initial

huangqimin001 3 years ago
commit
347be203ea
16 changed files with 331 additions and 0 deletions
  1. 29 0
      .editorconfig
  2. 69 0
      .gitignore
  3. 8 0
      .isort.cfg
  4. 22 0
      manage.py
  5. 9 0
      pep8.sh
  6. 3 0
      requirements.txt
  7. 3 0
      requirements_deploy.txt
  8. 2 0
      requirements_dev.txt
  9. 1 0
      requirements_dj.txt
  10. 3 0
      requirements_redis.txt
  11. 4 0
      sysctl.sh
  12. 0 0
      wxcloudemo/__init__.py
  13. 16 0
      wxcloudemo/asgi.py
  14. 125 0
      wxcloudemo/settings.py
  15. 21 0
      wxcloudemo/urls.py
  16. 16 0
      wxcloudemo/wsgi.py

+ 29 - 0
.editorconfig

@@ -0,0 +1,29 @@
1
+# EditorConfig is awesome: http://EditorConfig.org
2
+
3
+# top-most EditorConfig file
4
+root = true
5
+
6
+# Unix-style newlines with a newline ending every file
7
+[*]
8
+end_of_line = lf
9
+insert_final_newline = false
10
+
11
+# 4 space indentation
12
+[*.py]
13
+indent_style = space
14
+indent_size = 4
15
+
16
+# Tab indentation (no size specified)
17
+[*.js]
18
+indent_style = space
19
+indent_size = 4
20
+
21
+# Tab indentation (no size specified)
22
+[*.html]
23
+indent_style = space
24
+indent_size = 4
25
+
26
+# Matches the exact files either package.json or .travis.yml
27
+[{package.json,.travis.yml}]
28
+indent_style = space
29
+indent_size = 2

+ 69 - 0
.gitignore

@@ -0,0 +1,69 @@
1
+# Byte-compiled / optimized / DLL files
2
+__pycache__/
3
+*.py[cod]
4
+*.swp
5
+# C extensions
6
+*.so
7
+
8
+# Distribution / packaging
9
+bin/
10
+build/
11
+develop-eggs/
12
+dist/
13
+eggs/
14
+lib/
15
+lib64/
16
+parts/
17
+sdist/
18
+venv/
19
+var/
20
+static/upload/
21
+*.egg-info/
22
+.installed.cfg
23
+*.egg
24
+*.sublime*
25
+
26
+# Installer logs
27
+pip-log.txt
28
+pip-delete-this-directory.txt
29
+
30
+# Unit test / coverage reports
31
+.tox/
32
+.coverage
33
+.cache
34
+nosetests.xml
35
+coverage.xml
36
+
37
+# Translations
38
+# *.mo
39
+
40
+# Mr Developer
41
+.mr.developer.cfg
42
+.project
43
+.pydevproject
44
+.settings
45
+# Rope
46
+.ropeproject
47
+
48
+# Django stuff:
49
+*.log
50
+*.pot
51
+
52
+# Sphinx documentation
53
+docs/_build/
54
+
55
+
56
+# Ignore For zhTimer
57
+.DS_Store
58
+db.sqlite3
59
+local_settings.py
60
+
61
+.idea/
62
+media/
63
+collect_static/
64
+
65
+# Special File
66
+*download.html
67
+
68
+# Qiniu
69
+.qiniu_pythonsdk_hostscache.json

+ 8 - 0
.isort.cfg

@@ -0,0 +1,8 @@
1
+# See the menu of settings available here:
2
+#   https://github.com/timothycrosley/isort/wiki/isort-Settings
3
+
4
+[settings]
5
+indent='    '
6
+line_length=120
7
+lines_after_imports=2
8
+skip=migrations

+ 22 - 0
manage.py

@@ -0,0 +1,22 @@
1
+#!/usr/bin/env python
2
+"""Django's command-line utility for administrative tasks."""
3
+import os
4
+import sys
5
+
6
+
7
+def main():
8
+    """Run administrative tasks."""
9
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wxcloudemo.settings')
10
+    try:
11
+        from django.core.management import execute_from_command_line
12
+    except ImportError as exc:
13
+        raise ImportError(
14
+            "Couldn't import Django. Are you sure it's installed and "
15
+            "available on your PYTHONPATH environment variable? Did you "
16
+            "forget to activate a virtual environment?"
17
+        ) from exc
18
+    execute_from_command_line(sys.argv)
19
+
20
+
21
+if __name__ == '__main__':
22
+    main()

+ 9 - 0
pep8.sh

@@ -0,0 +1,9 @@
1
+#!/bin/bash
2
+
3
+# Ignoring autogenerated files
4
+#  -- Migration directories
5
+# Ignoring error codes
6
+#  -- E128 continuation line under-indented for visual indent
7
+#  -- E501 line too long
8
+
9
+pycodestyle --exclude=migrations --ignore=E128,E501 .

+ 3 - 0
requirements.txt

@@ -0,0 +1,3 @@
1
+-r requirements_dj.txt
2
+-r requirements_pywe.txt
3
+-r requirements_redis.txt

+ 3 - 0
requirements_deploy.txt

@@ -0,0 +1,3 @@
1
+ipdb==0.13.9
2
+ipython==7.34.0
3
+uwsgi==2.0.20

+ 2 - 0
requirements_dev.txt

@@ -0,0 +1,2 @@
1
+isort==5.10.1
2
+pycodestyle==2.8.0

+ 1 - 0
requirements_dj.txt

@@ -0,0 +1 @@
1
+Django==3.2.13

+ 3 - 0
requirements_redis.txt

@@ -0,0 +1,3 @@
1
+hiredis==2.0.0
2
+redis==4.3.3
3
+redis-extensions==2.0.7

+ 4 - 0
sysctl.sh

@@ -0,0 +1,4 @@
1
+#!/bin/bash
2
+
3
+sudo sysctl -w net.core.somaxconn=65535
4
+sudo sysctl -w net.core.netdev_max_backlog=65535

+ 0 - 0
wxcloudemo/__init__.py


+ 16 - 0
wxcloudemo/asgi.py

@@ -0,0 +1,16 @@
1
+"""
2
+ASGI config for wxcloudemo project.
3
+
4
+It exposes the ASGI callable as a module-level variable named ``application``.
5
+
6
+For more information on this file, see
7
+https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
8
+"""
9
+
10
+import os
11
+
12
+from django.core.asgi import get_asgi_application
13
+
14
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wxcloudemo.settings')
15
+
16
+application = get_asgi_application()

+ 125 - 0
wxcloudemo/settings.py

@@ -0,0 +1,125 @@
1
+"""
2
+Django settings for wxcloudemo project.
3
+
4
+Generated by 'django-admin startproject' using Django 3.2.13.
5
+
6
+For more information on this file, see
7
+https://docs.djangoproject.com/en/3.2/topics/settings/
8
+
9
+For the full list of settings and their values, see
10
+https://docs.djangoproject.com/en/3.2/ref/settings/
11
+"""
12
+
13
+from pathlib import Path
14
+
15
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
16
+BASE_DIR = Path(__file__).resolve().parent.parent
17
+
18
+
19
+# Quick-start development settings - unsuitable for production
20
+# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
21
+
22
+# SECURITY WARNING: keep the secret key used in production secret!
23
+SECRET_KEY = 'django-insecure-7if2wxrz&ykbmwlec644z%ankwga(i6hw26rz5p-9b$9ih1vy^'
24
+
25
+# SECURITY WARNING: don't run with debug turned on in production!
26
+DEBUG = True
27
+
28
+ALLOWED_HOSTS = []
29
+
30
+
31
+# Application definition
32
+
33
+INSTALLED_APPS = [
34
+    'django.contrib.admin',
35
+    'django.contrib.auth',
36
+    'django.contrib.contenttypes',
37
+    'django.contrib.sessions',
38
+    'django.contrib.messages',
39
+    'django.contrib.staticfiles',
40
+]
41
+
42
+MIDDLEWARE = [
43
+    'django.middleware.security.SecurityMiddleware',
44
+    'django.contrib.sessions.middleware.SessionMiddleware',
45
+    'django.middleware.common.CommonMiddleware',
46
+    'django.middleware.csrf.CsrfViewMiddleware',
47
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
48
+    'django.contrib.messages.middleware.MessageMiddleware',
49
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
50
+]
51
+
52
+ROOT_URLCONF = 'wxcloudemo.urls'
53
+
54
+TEMPLATES = [
55
+    {
56
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
57
+        'DIRS': [],
58
+        'APP_DIRS': True,
59
+        'OPTIONS': {
60
+            'context_processors': [
61
+                'django.template.context_processors.debug',
62
+                'django.template.context_processors.request',
63
+                'django.contrib.auth.context_processors.auth',
64
+                'django.contrib.messages.context_processors.messages',
65
+            ],
66
+        },
67
+    },
68
+]
69
+
70
+WSGI_APPLICATION = 'wxcloudemo.wsgi.application'
71
+
72
+
73
+# Database
74
+# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
75
+
76
+DATABASES = {
77
+    'default': {
78
+        'ENGINE': 'django.db.backends.sqlite3',
79
+        'NAME': BASE_DIR / 'db.sqlite3',
80
+    }
81
+}
82
+
83
+
84
+# Password validation
85
+# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
86
+
87
+AUTH_PASSWORD_VALIDATORS = [
88
+    {
89
+        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
90
+    },
91
+    {
92
+        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
93
+    },
94
+    {
95
+        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
96
+    },
97
+    {
98
+        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
99
+    },
100
+]
101
+
102
+
103
+# Internationalization
104
+# https://docs.djangoproject.com/en/3.2/topics/i18n/
105
+
106
+LANGUAGE_CODE = 'en-us'
107
+
108
+TIME_ZONE = 'UTC'
109
+
110
+USE_I18N = True
111
+
112
+USE_L10N = True
113
+
114
+USE_TZ = True
115
+
116
+
117
+# Static files (CSS, JavaScript, Images)
118
+# https://docs.djangoproject.com/en/3.2/howto/static-files/
119
+
120
+STATIC_URL = '/static/'
121
+
122
+# Default primary key field type
123
+# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
124
+
125
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

+ 21 - 0
wxcloudemo/urls.py

@@ -0,0 +1,21 @@
1
+"""wxcloudemo URL Configuration
2
+
3
+The `urlpatterns` list routes URLs to views. For more information please see:
4
+    https://docs.djangoproject.com/en/3.2/topics/http/urls/
5
+Examples:
6
+Function views
7
+    1. Add an import:  from my_app import views
8
+    2. Add a URL to urlpatterns:  path('', views.home, name='home')
9
+Class-based views
10
+    1. Add an import:  from other_app.views import Home
11
+    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
12
+Including another URLconf
13
+    1. Import the include() function: from django.urls import include, path
14
+    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
15
+"""
16
+from django.contrib import admin
17
+from django.urls import path
18
+
19
+urlpatterns = [
20
+    path('admin/', admin.site.urls),
21
+]

+ 16 - 0
wxcloudemo/wsgi.py

@@ -0,0 +1,16 @@
1
+"""
2
+WSGI config for wxcloudemo project.
3
+
4
+It exposes the WSGI callable as a module-level variable named ``application``.
5
+
6
+For more information on this file, see
7
+https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
8
+"""
9
+
10
+import os
11
+
12
+from django.core.wsgi import get_wsgi_application
13
+
14
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wxcloudemo.settings')
15
+
16
+application = get_wsgi_application()