django是一个基于python开发的web框架,他大包大揽,模板,后台,安全,网站地图,GeoIP他都有,只有你想不到,没有django做不到,甚至你可以开发一个restful风格的api

想法是好的,动手能力强也是好的,可是没地方部署,那就麻烦了,放到阿里云腾讯云,你没个学生优惠,还真部署不起,heroku render这两个玩意儿虽然也能部署,但是嘛,你不访问一段时间,他自动休眠你的应用程序,虽然说这样做节省免费资源,而且随时可唤醒,但是唤醒这玩意儿要时间的啊。而且,这两个玩意儿,在中国似乎无法访问。。。。。。

在我不断搜索下,找到了一个PaaS平台——railway,它可以部署大部分你想要的程序,包括了django,而且提供了测试域让你先用再绑定域名,而且在中国也能访问,就是有点慢。

railway绑定信用卡后,提供5美元免费额度供您使用,折合人民币35元,不少了。

下面是使用railway部署网站的过程,这里只讲如何在django配置设置,以及上传至railway部署,至于注册绑定信用卡,你自己处理

首先,你要准备visa mastercard信用卡,这是重点,不然下面无法开展。

然后就是你的应用程序,要进行修改

DEBUG要改成false,你要把调试模式关闭

然后在setting.py额外创建同级目录,config.py,你要在这里存放你的配置文件,以方便日后管理

去腾讯云,阿里云,AWS创建一个对象存储,对你有用,地区选美西。不要把容易变动的数据放在一个服务器目录,不然代码改动会没的。记下相关信息

AWS_ACCESS_KEY_ID = '访问id'
AWS_S3_CUSTOM_DOMAIN ='你的存储桶域名'
AWS_S3_ENDPOINT_URL ='https://oss-us-east-1.aliyuncs.com终结点域名'
AWS_S3_REGION ='us-east-1地区'
AWS_SECRET_ACCESS_KEY ='访问密钥'
AWS_STORAGE_BUCKET_NAME ='存储桶名'

屏幕截图 2023-12-06 204412.png

image.png

然后安装

pip install django-storages

在setting.py同级目录创建 storage_backends.py

from storages.backends.s3boto3 import S3Boto3Storage

class MediaStorage(S3Boto3Storage):
    location = 'images'
    file_overwrite = True

这时别忘记

py manage.py collectstatic

把你的静态文件上传到云厂商那边

然后去railway创建一个MySQL,不要把要数据放在sqlite上,不然改动代码,数据全没。

屏幕截图 2023-12-06 205654.png

屏幕截图 2023-12-06 205738.png

屏幕截图 2023-12-06 205934.png

这里就能看到数据库配置信息,建议部署前建议先初始化一遍数据库或者迁移到这里

然后数据库配置,要改成这样,建议使用配置文件来处理,维护起来要容易

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': os.path.join(BASE_DIR, 'my.cnf'),
        }
    }
}

mycnf放在应用目录上

[client]
database = 
user = 'root'
password = 
default-character-set = utf8
host = 
port = 

然后创建Procfile

web: gunicorn miyamizutakaki.wsgi --log-file -

runtime.txt

python-3.11.3

运行

pip freeze > requirements.txt

然后创建git仓库,把代码上传到GitHub,记得设置为私有,不然你的程序就是开源程序。

然后去找你刚刚创建的仓库

image.png

然后注意一下构建状态,绿了才成功

image.png

这时你在setting,能看到railway分配给你一个域名,你可以测试,也可以更换,使用cloudflare解析,记得使用时,要把SSL调成严格

最后修改:2024 年 01 月 05 日
如果觉得我的文章对你有用,请随意赞赏