在SAE上部署Python的Django框架的一些问题汇总

下面是部署Python的Django框架在SAE上的一些问题汇总的完整攻略和两个示例说明。

1. 环境搭建

首先,需要在本地安装 Django 和 mysqlclient。
可以使用以下命令:

pip install django
pip install mysqlclient

如果报错,可以尝试使用以下命令:

pip install django --user
pip install mysqlclient --user

2. 创建 Django 项目

可以使用以下命令创建 Django 项目:

django-admin startproject project_name

3. 推送项目至 SAE

将本地 Django 项目推送至 SAE,可以使用以下命令:

git init
git add .
git commit -m "first commit"
git remote add sae https://git.sinacloud.com/your-sae-app-name.git
git push sae master

4. 修改配置文件

需要将 settings.py 文件中的 DATABASES 配置改为以下内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_db_name',
        'USER': 'your_db_username',
        'PASSWORD': 'your_db_password',
        'HOST': 'w.rdc.sae.sina.com.cn',
        'PORT': '3307',
    }
}

需要将 project_name/wsgi.py 文件中的内容改为以下内容:

from django.core.wsgi import get_wsgi_application
import os
import sys

path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if path not in sys.path:
    sys.path.insert(0, path)

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

application = get_wsgi_application()

5. 修改数据库中默认字符集为 utf8mb4

需要在 SAE 的数据库中修改表格的默认字符集为 utf8mb4。

示例一:创建一个名为 demo 的 Django 应用

可以使用以下命令:

python manage.py startapp demo

然后在 urls.py 文件中添加以下内容:

from django.conf.urls import url
from demo.views import *

urlpatterns = [
    url(r'^hello/$', hello, name='hello'),
]

在 demo/views.py 文件中添加以下内容:

from django.http import HttpResponse


def hello(request):
    return HttpResponse("Hello World")

在 SAE 的数据库中创建一张表,表名为 test,结构如下:

id int(11) NOT NULL AUTO_INCREMENT,
content varchar(100) NOT NULL,
PRIMARY KEY (`id`)    
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在 demo/views.py 文件中添加以下代码:

from django.http import HttpResponse
from django.shortcuts import render
from django.db import connections

def test(request):
    cursor = connections['default'].cursor()
    sql = "INSERT INTO test(content) VALUES ('test')"
    cursor.execute(sql)
    return HttpResponse("success")

在 urls.py 文件中添加以下代码:

from django.conf.urls import url
from demo.views import *

urlpatterns = [
    url(r'^hello/$', hello, name='hello'),
    url(r'^test/$', test, name='test'),
]

现在,访问 https://your-sae-app-name.sinaapp.com/test/,应该会将 "test" 插入到数据库中的 test 表中,并返回 "success"。

示例二:读取环境变量

在 Django 项目中,可以使用以下代码来读取环境变量:

import os

env = os.environ.get('ENV', 'dev')

其中,'dev' 是默认值。

在 SAE 的应用设置中,可以设置环境变量,例如:

ENV=prod

这样,在 Django 项目中读取 env 环境变量时,会得到 'prod' 的值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在SAE上部署Python的Django框架的一些问题汇总 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django之对django内置的User模型进行自定义扩展方式

    对django内置的User模型进行自定义扩展可以使用Django提供的User模型扩展机制。下面详细讲解对django内置的User模型进行自定义扩展方式的完整攻略。 一、创建扩展模型 第一步是创建扩展模型,继承自Django内置的User模型,并添加想要扩展的字段。这里我们以添加nickname为例。创建一个新的app,这里我们取名为account: #…

    Django 2023年5月16日
    00
  • Python 学习笔记13:Python + wsgi + django 配置。坑爹的python3和wsgi不兼容的解决

    今人不见古时月,今月曾经照古人。生命是如此的美丽与短暂! 学习Python已经两个月了,Python的语法通过做简单的语法题和看Python语法介绍,有了初步的了解。但上班还是要做别的事情,所以感觉学起来特别慢。有一种时不我待的感觉。   基本的语法了解了,接下来就要尽快进入到项目的实战。这样才能快速的遇到问题,并解决问题,迅速提升能力。 开始当然就是先按网…

    Django 2023年4月11日
    00
  • Django中图片不显示

    很多教程没教对,导致Django中的图片不能正确的显示出来,经过多次踩坑,发现如下方法可以解决该问题。 1.setting.py中添加: STATIC_URL = ‘/static/’ STATICFILES_DIRS=[ os.path.join(BASE_DIR,’static’).replace(‘\\’,’/’) ] 注意在这里BASE_DIR在se…

    Django 2023年4月12日
    00
  • django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】

    Django框架事务处理小结 当在Django中处理数据库操作时,需要保证数据的一致性和完整性。因此,Django提供了事务处理来满足这个需求。 ORM事务处理 Django的ORM可以让我们更加方便地操作数据库。在进行ORM事务处理时,需要使用transaction.atomic()来实现。其中,.atomic()是Django的原子操作。如果操作成功,就…

    Django 2023年5月16日
    00
  • 在django admin中添加自定义视图

    来自https://blog.csdn.net/qq_35753140/article/details/84881757   django admin提供了完善的用户管理和数据模型管理,方便实用。研究了一下在admin里面添加自己的页面。 在admin.py里继承django.contrib.admin.ModelAdmin基类 class FaceAdmi…

    Django 2023年4月10日
    00
  • Django基础——Web框架原理

    所有的web应用的本质就是一个socket服务端,而浏览器就是一个socket客户端; 以前我们自己在电脑上写的socket服务端和客户端的通信,我们知道客户端会向服务端发来什么格式的消息,然后我们用服务端去用相应的格式给接收它,其实两者之间,是靠自己定的一个通信的协议。 而现在客户端是用户的浏览器了,因此还想使浏览器的客户端与服务端进行通信,就必须要遵循H…

    Django 2023年4月11日
    00
  • 使用Django2.0打造小程序助手

    打造个人助手 主角: Django2.0 微信小程序(2017年元旦发布) 技术要求: python3开发基础 Django开发基础 HTML+CSS+JS 开发环境: Python开发环境:Python3.5+pycharm 小程序开发环境:微信开发者工具 系统开发环境:Windows(开发)+linux(部署) 依赖环境&工具 Postman(模…

    Django 2023年4月9日
    00
  • Python Django 后台管理之后台模型属性详解

    下面我来详细讲解一下“Python Django 后台管理之后台模型属性详解”的攻略。 一、介绍 在Django中,模型是创建数据库表的关键,而后台管理是我们在开发实践中需要的一个基础模块。因此,了解后台管理中的各种模型属性对于有效管理数据来说是非常重要的。 二、模型属性 下面介绍一下在Django中后台模型常用的属性。 1. verbose_name和ve…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部