【GCP(GCE)xdjangoxApachexお名前.com】構建Web服務備忘錄
首先
为了学习Django,我尝试使用GCP(GCE:debian)和Django的组合创建了一个Web服务。作为Django初学者,我打算总结一下我遇到的问题和解决办法。
完成的产品
这是一个根据和弦制作伴奏的服务。在网上可以播放,也可以下载为MIDI/MusicXML格式,并且可以立即在MuseScore等乐谱软件中进行编辑。(当然是免费的,但需要用户注册才能下载MusicXML文件)。
以下是困难之处和解决方法或参考信息。
技术选择
哎呀!大声喊“哎呀!”并开始是幸运的。
您在お名前.com注册的子域名如何登记?
为了熟悉Django
为了熟悉,首先需要亲自操作。由于有官方的应用程序制作指南,所以就参照它进行操作。
是否也有其他可以作为参考“参照点”的网站呢?参考网站。
→Github(https://github.com/Yulikepython/itc-tube/tree/main/src)
→现实的服务(https://nippo.itc.tokyo/)
无法通过python manage.py runserver连接
请检查是否正在运行 “runserver 0.0.0.0:8000″,端口是否打开,并确认是否在源代码中加载了 “venv”。
我想要使用常数
在TEMPLATES中添加”<PJ名称>.context_processors.constant_text”。创建context_processors.py文件。
将SQLite转换为PostgreSQL
与Apache的合作
根据自身的环境进行设置。如果使用多个子域名,则使用Daemon。
https://flat-kids.net/2020/05/22/gcp-apache-mod-wsgi-django%E3%80%80%E7%8B%AC%E8%87%AA%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%A7%E5%85%AC%E9%96%8B/
https://qiita.com/chatrate/items/b77ebe1a11bed8be4a43
想要动态地创建表单。
想要播放Midi音频
将HTTP协议转换为HTTPS协议
使用Certbot。官方文档只提供了英文版本,但是非常详细清晰,我会按照其中的指示进行操作。
只要按照指引进行操作,Certbot会帮助我们完成从HTTP到HTTPS的重定向(RewriteEngine)设置。
CustomUser 的使用出现问题。
最好立即在PJ中設置CustomUser。即使內容正確,如果從中途開始,遷移也可能出現錯誤。在這種情況下,重新創建DB,然後執行makemigrations,migrate可能會成功。
Git 的资源管理 (远程分支相关)。
迁移文件要在Git上注册吗?
进行(根据管理方法)。
GCE很重
如果是在Debian上,可以通过使用 “sort -o %MEM” 或 “sort -o %CPU” 来进行状态确认。如果原因是Apache的内存,可以限制Apache的进程数量。
环境无法正常运行。
可以尝试重新启动运行中的runserver吗?
是否像DEBUG=env.bool(‘DEBUG’, default=False)这样设置了?
域名合作後无法连接
允许的主机是否正确?试试将您的服务器IP和域名注册进去?
在模版上,“あまり”计算是多少?
默认情况下看起来是不可能的,所以使用taglib。
~my_tag.py~
从django导入template
注册 = template.Library()
@register.filter
def modulo(num, val):
返回 num % val
要使用Django发送邮件吗?
使用Gmail。启用两步验证。绝对不要去动Dovecot/Postfix。
– settings.py
EMAIL_BACKEND = “django.core.mail.backends.smtp.EmailBackend” # 不要使用Console,改用SMTP
EMAIL_HOST = “smtp.gmail.com”
EMAIL_USE_SSL = True
EMAIL_PORT = 465
EMAIL_HOST_USER = “<邮箱地址>”
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = “<密码>”
除此之外,只要想起来,遇到问题的时候我会立即增补!