【GCP(GCE)xdjangoxApachexお名前.com】構建Web服務備忘錄

首先

为了学习Django,我尝试使用GCP(GCE:debian)和Django的组合创建了一个Web服务。作为Django初学者,我打算总结一下我遇到的问题和解决办法。

完成的产品

 

这是一个根据和弦制作伴奏的服务。在网上可以播放,也可以下载为MIDI/MusicXML格式,并且可以立即在MuseScore等乐谱软件中进行编辑。(当然是免费的,但需要用户注册才能下载MusicXML文件)。

以下是困难之处和解决方法或参考信息。

技术选择

哎呀!大声喊“哎呀!”并开始是幸运的。

您在お名前.com注册的子域名如何登记?

001.jpg

为了熟悉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 = “<密码>”

除此之外,只要想起来,遇到问题的时候我会立即增补!

广告
将在 10 秒后关闭
bannerAds