• [技术干货] 使用 Django 和响应构建"执行"应用程序
    介绍在此教程中,您将使用 Django 和响应构建一个"执行"应用程序。响应是开发 SPA(单页应用程序)的 JavaScript 框架。它周围有可靠的文档和充满活力的生态系统。Django 是一个 Python 网络框架,简化了 Web 开发中的常见做法。Django 是可靠的,并且拥有充满活力的稳定图书馆生态系统,支持共同发展需求。对于此应用程序,React 充当前端或客户端框架,处理用户界面,并通过向 Django 后端请求获取和设置数据,后者是使用 Django REST 框架 (DRF) 构建的 API。在此教程结束时,您将有一个完全工作的应用程序:先决条件要遵循此教程,您需要:为 Python 3 安装并设置本地编程环境安装节点.js并创建本地发展环境警告:本教程中提供的代码用于教育目的,并非用于生产用途。本教程通过 Python v3.9.1、v20.2.4、Django v3.1.6、v3.12.2、v3.7.0、节点 v15.8.0、v7.5.4、反应 v17.0.1 和 v0.21.0 进行验证。pipdjangorestframeworkdjango-cors-headersnpmaxios第1步-设置后端在此部分中,您将创建一个新的项目目录并安装 Django。打开新的终端窗口并运行以下命令以创建新的项目目录:mkdir django-todo-react接下来,导航到目录:cd django-todo-react现在安装皮普恩夫使用:pippip install pipenv注意:根据您的安装,您可能需要使用而不是。pip3pip并激活新的虚拟环境:pipenv shell使用皮普恩夫安装詹戈:pipenv install django然后创建一个名为:backenddjango-admin startproject backend接下来,导航到新创建的后端目录:cd backend启动一个名为:todopython manage.py startapp todo运行迁移:python manage.py migrate并启动服务器:python manage.py runserver导航到您的 Web 浏览器中:http://localhost:8000
  • [技术干货] 在应用平台上部署 Django 应用程序
    介绍Django是一个强大的 Web 框架,允许您部署您的 Python 应用程序或网站。Django 包括许多功能,如身份验证、自定义数据库 ORM(对象关系映像)和可扩展的插件架构。Django 简化了 Web 开发的复杂性,允许您专注于编写代码。在此教程中,您将配置一个 Django 项目,并将其部署到使用 GitHub 的数字海洋应用平台。先决条件要完成此教程,您需要:Python3 安装在您当地的机器上。您可以按照以下教程在Windows、Mac或Linux上安装Python 。文本编辑器第 1 步 - 为您的项目创建 Python 虚拟环境在开始之前,您需要设置我们的 Python 开发人员环境。您将在虚拟环境中安装Python要求,以便于管理。首先,在家庭目录中创建一个目录,您可以使用该目录存储所有虚拟环境:mkdir ~/.venvs现在使用 Python 创建虚拟环境:python3 -m venv ~/.venvs/django这将创建目录内调用的目录。在里面,它将安装一个本地版本的Python和本地版本的。您可以用它来为您的项目安装和配置一个孤立的 Python 环境。django.venvspip在安装项目 Python 要求之前,您需要激活虚拟环境。您可以通过键入来做到这一点:source ~.venvs/django/bin/activate您的提示应更改,以指示您现在在 Python 虚拟环境中运行。它会看起来像这样的东西: 。 。(django)user@host:~$在虚拟环境处于活动状态后,安装 Django、古尼科恩、dj 数据库 url 和PostgreSQL 适配器,并结合本地实例:psycopg2pippip install django gunicorn psycopg2-binary dj-database-url注意:当虚拟环境被激活时(当您的提示已在它前面时),使用而不是使用,即使您正在使用 Python 3。虚拟环境的工具副本始终被命名,无论 Python 版本如何。(django)pippip3pip这些包有以下几点:django- 安装 Django 框架和库gunicorn-使用WSGI部署詹戈的工具dj-database-url- 用于解析数据库网址的 Django 工具psycopg2- 允许 Django 连接到波斯特格雷斯QL 数据库的波斯特格雷斯QL 适配器现在,您已安装了这些包,您将需要保存这些要求及其依赖项,以便应用平台以后可以安装它们。您可以使用并保存信息以满足要求.txt文件:pippip freeze > requirements.txt现在,您应该拥有启动 Django 项目所需的所有软件。您几乎已准备好部署。第2步-创建詹戈项目使用安装Django 时安装的 django 管理工具创建您的项目:django-admin startproject django_app此时,您当前的目录(就您的情况而言)将具有以下内容:django_appmanage.py:Django项目管理脚本。django_app/:詹戈项目包。这应该包含,,,和文件。__init__.pysettings.pyurls.pyasgi.pywsgi.py此目录将成为您项目的根目录,并将是我们上传到 GitHub 的内容。通过命令导航到此目录:cd django_app让我们在部署前调整一些设置。调整项目设置现在,您创建了 Django 项目,您需要修改设置以确保它将在应用平台中正常运行。打开文本编辑器中的设置文件:nano django_app/settings.py让我们一步一步地检查我们的配置。阅读环境变量首先,您需要添加导入语句才能读取环境变量:osdjango_app/设置.pyimport os设置密钥接下来,您需要修改指令。这是由 Django 在初始项目创建中设置的,并将具有随机生成的默认值。将硬编码值推入 GitHub 后,将硬编码值保留在代码中不安全,因此您应该从环境变量中读取此值,或在应用程序启动时生成此值。为此,请在设置文件顶部添加以下导入语句:SECRET_KEYdjango_app/设置.pyfrom django.core.management.utils import get_random_secret_key现在修改指令,从环境变量读取值,或在找不到该环境变量时生成密钥:SECRET_KEYDJANGO_SECRET_KEYdjango_app/设置.pySECRET_KEY = os.getenv("DJANGO_SECRET_KEY", get_random_secret_key())警告:如果您没有设置此环境变量,则每次重新部署应用时,此密钥都会更改。这会对 Cookie 产生负面影响,并且每次此关键更改时都需要用户再次登录。您可以使用在线密码生成器生成密钥。设置允许的主机现在找到指令。这定义了可用于连接到 Django 实例的服务器地址或域名列表。任何带有本列表中主机标题的传入请求都将提出例外。Django 要求您设置此设置以防止特定类别的安全漏洞。ALLOWED_HOSTS在方括号中,列出与 Django 服务器关联的 IP 地址或域名。每个项目应列在报价中,条目由逗号分离。如果您希望请求整个域名和任何子域,请预先将句点预存到条目开始。应用平台为您提供自定义 URL 作为默认值,然后允许您在部署应用程序后设置自定义域。由于在部署应用程序之前您不会知道此自定义 URL,因此您应该尝试从环境变量中读取,因此应用平台可以在应用启动时将其注入应用。ALLOWED_HOSTS我们将在以后的章节中更深入地介绍此过程。但现在,请修改您的指令,尝试从环境变量中读取主机。环境变量可以设置为单个主机或逗号标出列表:ALLOWED_HOSTSdjango_app/设置.pyALLOWED_HOSTS = os.getenv("DJANGO_ALLOWED_HOSTS", "127.0.0.1,localhost").split(",")设置德布指令接下来,您应该修改指令,以便您可以通过设置环境变量来切换该指令:DEBUGdjango_app/设置.pyDEBUG = os.getenv("DEBUG", "False") == "True"在这里,您使用该方法检查了名为"环境变量"的变量。如果找不到此变量,我们应默认为安全。由于环境变量将读入来自应用平台的字符串,因此请务必进行比较,以确保正确评估您的变量。getenvDEBUGFalse设置开发模式现在创建一个名为"新指令"的新指令,该指令也将设置为环境变量。这是一个帮手变量,您将用它来确定何时连接到您的Postgres数据库,以及何时连接到本地SQLite数据库进行测试。在设置数据库连接时,稍后将使用此变量:DEVELOPMENT_MODEdjango_app/设置.pyDEVELOPMENT_MODE = os.getenv("DEVELOPMENT_MODE", "False") == "True"配置数据库访问接下来,查找配置数据库访问的部分。它将从。文件中的配置用于 SQLite 数据库。应用平台允许您为我们的项目创建一个PostgreSQL数据库,因此您需要调整设置才能连接到它。DATABASES警告:如果您不更改这些设置并继续使用 SQLite DB,则每次新部署后,您的数据库都会被删除。应用平台在重新部署应用程序时不会维护磁盘,您的数据将丢失。使用您的PostgreSQL数据库信息更改设置。您将在数据库连接信息和来自环境变量的凭据中阅读,这些信息和凭据将由应用平台提供。使用我们安装的适配器让 Django 访问波斯特格雷斯QL 数据库。您将使用已安装的包从数据库连接 URL 获取所有必要的信息。DATABASE_URLpsycopg2pipdj-database-url为了便于本地开发应用程序,您还将使用此处的语句来确定是否设置为应设置为应访问哪个数据库。默认情况下,这将被设置为,并将尝试连接到PostgreSQL数据库。您也不希望 Django 在尝试收集静态文件时尝试与PostgreSQL 数据库进行数据库连接,因此,如果您确定所提供的命令是,您将编写一份声明来检查已执行的命令,并且不连接到数据库。应用平台将在应用部署时自动收集静态文件。ifDEVELOPMENT_MODETrueFalseifcollectstatic首先,安装库,以便您可以确定传递到的命令和库能够解析通过的 URL:sysmanage.pydj_database_urldjango_app/设置.py. . . import osimport sysimport dj_database_url接下来删除当前指令块,并将其替换为:DATABASEdjango_app/设置.pyif DEVELOPMENT_MODE is True:     DATABASES = {         "default": {             "ENGINE": "django.db.backends.sqlite3",             "NAME": os.path.join(BASE_DIR, "db.sqlite3"),         }     } elif len(sys.argv) > 0 and sys.argv[1] != 'collectstatic':     if os.getenv("DATABASE_URL", None) is None:         raise Exception("DATABASE_URL environment variable not defined")     DATABASES = {         "default": dj_database_url.parse(os.environ.get("DATABASE_URL")),     }接下来,向下移动到文件的底部,并添加一个设置,指示静态文件应放置在哪里。当您的 Django 应用部署到应用平台时,将自动运行。在设置文件中设置与指令匹配的路线:python manage.py collectstaticSTATIC_URLdjango_app/设置.py. . . STATIC_URL = "/static/"STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")注意:如果您计划将静态文件存储在单个 Django-app 静态文件之外的其他位置,则需要向设置文件添加附加指令。本指令将指定在哪里可以找到这些文件。请注意,这些目录不能与您的目录共享相同的名称。如果您没有额外的静态文件,则不包括此设置。STATIC_ROOTdjango_app/设置.py. . . STATIC_URL = "/static/" STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)查看已完成的文件settings.py您完成的文件将看起来像这样:from django.core.management.utils import get_random_secret_key from pathlib import Path import os import sys import dj_database_url # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = os.getenv("DJANGO_SECRET_KEY", get_random_secret_key()) # SECURITY WARNING: don't run with debug turned on in production! DEBUG = os.getenv("DEBUG", "False") == "True" ALLOWED_HOSTS = os.getenv("DJANGO_ALLOWED_HOSTS", "127.0.0.1,localhost").split(",") # Application definition INSTALLED_APPS = [     'django.contrib.admin',     'django.contrib.auth',     'django.contrib.contenttypes',     'django.contrib.sessions',     'django.contrib.messages',     'django.contrib.staticfiles', ] MIDDLEWARE = [     'django.middleware.security.SecurityMiddleware',     'django.contrib.sessions.middleware.SessionMiddleware',     'django.middleware.common.CommonMiddleware',     'django.middleware.csrf.CsrfViewMiddleware',     'django.contrib.auth.middleware.AuthenticationMiddleware',     'django.contrib.messages.middleware.MessageMiddleware',     'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'django_app.urls' TEMPLATES = [     {         'BACKEND': 'django.template.backends.django.DjangoTemplates',         'DIRS': [],         'APP_DIRS': True,         'OPTIONS': {             'context_processors': [                 'django.template.context_processors.debug',                 'django.template.context_processors.request',                 'django.contrib.auth.context_processors.auth',                 'django.contrib.messages.context_processors.messages',             ],         },     }, ] WSGI_APPLICATION = 'django_app.wsgi.application' # Database # https://docs.djangoproject.com/en/3.1/ref/settings/#databases DEVELOPMENT_MODE = os.getenv("DEVELOPMENT_MODE", "False") == "True" if DEVELOPMENT_MODE is True:     DATABASES = {         "default": {             "ENGINE": "django.db.backends.sqlite3",             "NAME": os.path.join(BASE_DIR, "db.sqlite3"),         }     } elif len(sys.argv) > 0 and sys.argv[1] != 'collectstatic':     if os.getenv("DATABASE_URL", None) is None:         raise Exception("DATABASE_URL environment variable not defined")     DATABASES = {         "default": dj_database_url.parse(os.environ.get("DATABASE_URL")),     } # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [     {         'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',     },     {         'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',     },     {         'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',     },     {         'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',     }, ] # Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/ STATIC_URL = "/static/" STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") # Uncomment if you have extra static files and a directory in your GitHub repo. # If you don't have this directory and have this uncommented your build will fail # STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)注意:当您首次设置应用时,会生成特定于您的项目(例如和)的一些值。如果您为您的应用命名了其他名称,并且要直接复制和粘贴此代码,请务必修改这些设置以匹配您的项目。它们将正确设置在为您生成的中。settings.pyWSGI_APPLICATIONROOT_URLCONFdjango_appsettings.py保存和关闭。settings.py您现在已完成配置 Django 应用程序以在应用平台上运行。接下来,您将将应用程序推至 GitHub 并将其部署到应用平台。第3步——将网站推至GitHubDigitalOcean 应用平台从 GitHub 存储库部署您的代码,因此您需要做的第一件事就是将您的网站放在存储库中,然后将存储库推至 GitHub。git首先,将 Django 项目初始化为存储库:gitgit init当您在本地处理 Django 应用时,会添加某些不需要部署的文件。让我们通过将其添加到 Git 的忽略列表中来排除该目录。创建一个名为:.gitignorenano .gitignore现在将以下代码添加到文件中:.吉蒂尼奥雷db.sqlite3 *.pyc保存并关闭文件。现在执行以下命令,将文件添加到存储库:git add django_app/ manage.py requirements.txt static/进行初始提交:git commit -m "Initial Django App"您的文件将提交:Output[master (root-commit) eda5d36] Initial Django App  8 files changed, 238 insertions(+)  create mode 100644 django_app/__init__.py  create mode 100644 django_app/asgi.py  create mode 100644 django_app/settings.py  create mode 100644 django_app/urls.py  create mode 100644 django_app/wsgi.py  create mode 100644 manage.py  create mode 100644 requirements.txt  create mode 100644 static/README.md打开浏览器并导航到GitHub,使用您的个人资料登录,并创建一个名为".创建一个没有或许可证文件的空存储库。django-appREADME创建存储库后,返回命令行,将本地文件推至 GitHub。首先,将 GitHub 添加为远程存储库:git remote add origin https://github.com/your_username/django-app接下来,重命名默认分支,以匹配 GitHub 的期望:maingit branch -M main最后,将您的分支机构推至 GitHub 的分支机构:mainmaingit push -u origin main您的文件将传输:OutputEnumerating objects: 12, done. Counting objects: 100% (12/12), done. Delta compression using up to 8 threads Compressing objects: 100% (9/9), done. Writing objects: 100% (12/12), 3.98 KiB | 150.00 KiB/s, done. Total 12 (delta 1), reused 0 (delta 0) remote: Resolving deltas: 100% (1/1), done. To github.com:yourUsername/django-app.git  * [new branch]      main -> main Branch 'main' set up to track remote branch 'main' from 'origin'.在提示推送代码时输入 GitHub 凭据。您的代码现在在 GitHub 上,可通过 Web 浏览器访问。
  • Django 2.2.3 移植指南(CentOS 7.5)
    软件介绍 Django是开放源代码的Web应用框架,由Python写成。采用了MVT软件设计模式,即模型(Model)、视图(View)和模板(Template)。Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”。 支持的操作系统经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行Django的全部功能:l   CentOS 7.5l   EulerOS 2.8支持版本和获取方式l   建议使用版本为“Django-2.2.3”l   通过pip命令获取安装。安装和测试方式1.      选择操作环境本文选用华为鲲鹏云服务ECS KC1实例做测试,详细配置如下:类别子项版本云服务器配置ECS实例类型kc1.xlarge.4ECS配置4U16GBEVS高IO(40GB)云OSCentOS7.5Kernel4.14.0-492.      搭建安装环境步骤一:查看Python版本查看Python版本。“Django-2.2.3”依赖于“Python3.5”及以上版本,查看当前系统安装Python的版本号python --version回显内容如下:Python 2.7.5步骤二:升级Python需要升级python,步骤如下:1)     安装“Python3.5.6”。a.         下载“Python3.5.6”。wget https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgzb.         解压压缩包并进入解压目录。tar -zxvf Python-3.5.6.tgz && cd Python-3.5.6c.         进行配置、编译、安装。./configure && make && make install2)     进行链接替换。由于yum命令依赖于“Python2.x”,所以不能卸载“Python2.x”,为了解决“Python2.x”与“Python3.x”的冲突,需要进行链接替换。a.         将指向“Python2.x”的软链接“/usr/bin/python”改为指向“Python3.x”。ln -s /usr/local/bin/python3 /usr/bin/python -fb.         对pip进行链接替换。ln -s /usr/local/bin/pip3 /usr/bin/pip -f3)     安装setuptools。a.         下载setuptools。wget https://files.pythonhosted.org/packages/c2/f7/c7b501b783e5a74cf1768bc174ee4fb0a8a6ee5af6afa92274ff964703e0/setuptools-40.8.0.zipb.         解压压缩包并进入解压目录。unzip  setuptools-40.8.0.zip && cd setuptools-40.8.0c.         安装setuptools。python setup.py install3.      安装Django使用pip命令安装Django。Django依赖于pytz和sqlparse,手动安装Django需要先安装依赖包。pip install django安装成功后,回显内容如下:Installing collected packages: sqlparse, pytz, djangoSuccessfully installed django-2.2.3 pytz-2019.1 sqlparse-0.3.04.      测试已完成安装的软件1)     打开Python交互界面,直接执行python命令。2)     导入Django。import django3)     查看安装的Django版本号。print (django.get_version())回显内容如下:>>> print (django.get_version())2.2.3
  • Django 2.2.3 移植指南(CentOS 7.5)
    软件介绍 Django是开放源代码的Web应用框架,由Python写成。采用了MVT软件设计模式,即模型(Model)、视图(View)和模板(Template)。Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”。 支持的操作系统经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行Django的全部功能:l   CentOS 7.5l   EulerOS 2.8支持版本和获取方式l   建议使用版本为“Django-2.2.3”l   通过pip命令获取安装。安装和测试方式1.      选择操作环境本文选用华为鲲鹏云服务ECS KC1实例做测试,详细配置如下:类别子项版本云服务器配置ECS实例类型kc1.xlarge.4ECS配置4U16GBEVS高IO(40GB)云OSCentOS7.5Kernel4.14.0-492.      搭建安装环境步骤一:查看Python版本查看Python版本。“Django-2.2.3”依赖于“Python3.5”及以上版本,查看当前系统安装Python的版本号python --version回显内容如下:Python 2.7.5步骤二:升级Python需要升级python,步骤如下:1)     安装“Python3.5.6”。a.         下载“Python3.5.6”。wget https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgzb.         解压压缩包并进入解压目录。tar -zxvf Python-3.5.6.tgz && cd Python-3.5.6c.         进行配置、编译、安装。./configure && make && make install2)     进行链接替换。由于yum命令依赖于“Python2.x”,所以不能卸载“Python2.x”,为了解决“Python2.x”与“Python3.x”的冲突,需要进行链接替换。a.         将指向“Python2.x”的软链接“/usr/bin/python”改为指向“Python3.x”。ln -s /usr/local/bin/python3 /usr/bin/python -fb.         对pip进行链接替换。ln -s /usr/local/bin/pip3 /usr/bin/pip -f3)     安装setuptools。a.         下载setuptools。wget https://files.pythonhosted.org/packages/c2/f7/c7b501b783e5a74cf1768bc174ee4fb0a8a6ee5af6afa92274ff964703e0/setuptools-40.8.0.zipb.         解压压缩包并进入解压目录。unzip  setuptools-40.8.0.zip && cd setuptools-40.8.0c.         安装setuptools。python setup.py install3.      安装Django使用pip命令安装Django。Django依赖于pytz和sqlparse,手动安装Django需要先安装依赖包。pip install django安装成功后,回显内容如下:Installing collected packages: sqlparse, pytz, djangoSuccessfully installed django-2.2.3 pytz-2019.1 sqlparse-0.3.04.      测试已完成安装的软件1)     打开Python交互界面,直接执行python命令。2)     导入Django。import django3)     查看安装的Django版本号。print (django.get_version())回显内容如下:>>> print (django.get_version())2.2.3
总条数:21 到第
上滑加载中