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 ='存储桶名'
然后安装
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上,不然改动代码,数据全没。
这里就能看到数据库配置信息,建议部署前建议先初始化一遍数据库或者迁移到这里
然后数据库配置,要改成这样,建议使用配置文件来处理,维护起来要容易
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,记得设置为私有,不然你的程序就是开源程序。
然后去找你刚刚创建的仓库
然后注意一下构建状态,绿了才成功
这时你在setting,能看到railway分配给你一个域名,你可以测试,也可以更换,使用cloudflare解析,记得使用时,要把SSL调成严格