YouDev wurde veröffentlicht. 2020.5.01
YouDev ist ein Dienst, der sich auf einzelne Entwickler konzentriert und sie mehr wissen lässt (ich möchte wissen ...).
Selbst wenn der Service erkannt wird, denke ich, dass der Entwickler nicht im Rampenlicht steht, und ich denke, dass einzelne Entwickler nicht nur den Service, sondern auch den Entwickler selbst ansprechen können. Ich habe es geschaffen.
Wir sind immer auf der Suche nach einzelnen Entwicklern, also ** bin ich ein einzelner Entwickler! Wenn Sie ** denken, registrieren Sie sich bitte!
Darüber hinaus akzeptieren wir Verbesserungen, unabhängig davon, ob sie verbessert werden können oder nicht!
・ ** Heppoko Engineer </ font> ** ・ Entwicklungsgeschichte: 3 Jahre ・ Persönliche Entwicklungsgeschichte: ein halbes Jahr (2020.01 habe ich beschlossen, dieses Jahr eine persönliche Entwicklung durchzuführen! **) ・ Entwicklungssprache: Python (ein halbes Jahr) ・ Design-Sinn: ** Keine ** (Design ist ohne Verwendung eines Frameworks nicht möglich.) ・ Ich kann heutzutage nicht mit der Geschwindigkeit neuer Technologien Schritt halten. ・ Python ist heiß! ?? Ich denke nur ** ・ Lass uns auf Qiita posten, wenn du mit der persönlichen Entwicklung beginnst! Ich dachte, aber die Atmosphäre war anders. (Es scheint keinen Vorhang für Heppoko-Ingenieure zu geben.) ・ Qiita kann nur in MarkDown geschrieben werden! ?? Was ist das unmöglich!
Jedenfalls wollte ich etwas über einzelne Entwickler wissen.
Was für Leute sind einzelne Entwickler und welche Aktivitäten machen sie? Ein Service, der nützlich ist, wenn Sie denken
Streben Sie einen Ort für Sensibilisierungsmaßnahmen an, der für einzelne Entwickler von Vorteil ist.
So was.
DB verwendete MySQL, weil ich PostgreSQL nicht sehr oft verwendet hatte. Ich wollte eigentlich AWS RDS verwenden, aber es war kein monetisierter Dienst, deshalb habe ich ihn leise in EC2 installiert. Aber ich möchte immer noch RDS verwenden. ..
Ich wollte die Verwendung von S3 nach Möglichkeit vermeiden, habe mich jedoch für die Verwendung von S3 entschieden, da vom Benutzer Bilddaten registriert sind. Erstens beträgt die Speicherkapazität von EC2 nur 8 GB, daher habe ich mich auch hier leise für S3 entschieden.
Für Bilddaten, CSS und Skriptsysteme, die üblicherweise innerhalb des Dienstes verwendet werden, wird jedoch auf der EC2-Seite ein neuer statischer Ordner erstellt und von dort verteilt. (Im schlimmsten Fall handelt es sich um eine Datei, die beschädigt werden kann.)
Der Quellcode wird von privatem Github verwaltet.
Unmittelbar nach der Inbetriebnahme der Produktionsumgebung habe ich Mediendateien im selben Verzeichnis wie EC2 static betrieben, sodass ich sie zuerst in S3 verschieben musste. ..
Erstellen Sie ernsthaft einen Bucket für S3.
Grundsätzlich gab es hier keine Stolpersteine.
Bestätigen Sie zunächst die unten stehende Zertifizierung
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region <not set> None None
Wenn es nicht festgelegt ist, können Sie keine Verbindung zu S3 herstellen. Legen Sie daher den Zugriffsschlüssel und den geheimen Schlüssel des zuvor erstellten Benutzers fest.
$ aws configure
AWS Access Key ID [None]: <Zugangsschlüssel>
AWS Secret Access Key [None]:<Geheimer Schlüssel>
Default region name [None]: <Ich habe nichts eingegeben>
Default output format [None]:<Ich habe nichts eingegeben>
Jetzt, da Sie eine Verbindung zu S3 herstellen können, laden Sie es hoch!
$ cd /usr/share/nginx/html/media/ #Dies ist das Verzeichnis, das die Dateien enthält, die Sie migrieren möchten
$ aws s3 cp --recursive uploads s3://<Eimername>/<Ordnernamen>
Ich hab es geschafft!
Apropos -Wenn --recursive hinzugefügt wird, wird das Verzeichnis als Ziel ausgewählt. -Wenn die Synchronisierung anstelle von cp verwendet wird, wird sie anstelle der Kopie synchronisiert.
Auf der Django-Seite müssen Sie die Mediendatei hochladen und das Referenzziel so ändern, dass es zu S3 zeigt.
Die folgenden Module sind erforderlich, um S3 mit Django zu verwenden. Installieren Sie es daher.
Installation
$ pip install django-storages
$ pip install boto3
Fügen Sie der Einstellung Folgendes hinzu
settings.py
INSTALLED_APPS = [
...
'storages', #hinzufügen
]
...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
'django.template.context_processors.media', #hinzufügen
#Durch Hinzufügen dieser aus Vorlage{{MEDIA_URL}}Sie können mit auf S3 verweisen.
],
},
},
]
...
# MEDIA_URL = '/media/'
AWS_ACCESS_KEY_ID = '<Zugangsschlüssel>'
AWS_SECRET_ACCESS_KEY = '<Geheimer Schlüssel>'
AWS_STORAGE_BUCKET_NAME = '<Eimername>'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_LOCATION = 'media'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
MEDIA_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
Jetzt können Sie auf S3 hochladen und S3 durchsuchen.
social-auth-app-django
Eine Bibliothek, mit der Sie sich bei Diensten anmelden können, die mit Django über soziale Dienste (Twitter, Google, Facebook usw.) erstellt wurden.
Authentifizierungseinstellungen für das Twitter-Konto
Installation
$ pip install social-auth-app-django
settings.py
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'social_django', #Hier hinzufügen
]
...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'social_django.context_processors.backends',#Hier hinzufügen
'social_django.context_processors.login_redirect',#Hier hinzufügen
],
},
},
]
...
SOCIAL_AUTH_URL_NAMESPACE = 'social' #hinzufügen
#AUTHENTICATION_BACKENDS hinzugefügt
AUTHENTICATION_BACKENDS = [
'social_core.backends.twitter.TwitterOAuth',
'django.contrib.auth.backends.ModelBackend',
]
#Folgendes sollte in den Umgebungsvariablen in der Produktionsumgebung festgelegt werden!
SOCIAL_AUTH_TWITTER_KEY = 'xxxxxxxx' # Consumer Key (API Key)
SOCIAL_AUTH_TWITTER_SECRET = 'xxxxxxxxx'# Consumer Secret (API Secret)
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '' #URL beim Login umleiten
LOGOUT_REDIRECT_URL = '' #URL beim Abmelden umleiten
project/urls.py
urlpatterns = [
...
path('', include('social_django.urls')), #hinzufügen#
#Durch Hinzufügen von ↑ kann jeder Prozess ausgeführt werden, indem von der Anwendungsseite aus auf die folgende URL zugegriffen wird.
#Einloggen:/login/twitter
#Ausloggen:/disconnect/twitter/
#* Abmelden ist Auth auf der Django-Seite_views.LogoutView.as_Besser Ansicht verwenden
#complete:/complete/twitter/
...
]
/ complete / twitter / ist die Rückruf-URL für die Twitter-API. Beispiel)
Danach können Sie es durch Migration verwenden
migrate
$ python manage.py makemigrations social_django
$ python manage.py migrate
requests-oauthlib
Dies ist eine Bibliothek, mit der Sie OAuth implementieren können, wenn Sie die Twitter-API mit wenigen Codes verwenden.
Installation
$ pip install requests requests_oauthlib
settings.py
TWITTER_ACCESS_TOKEN = 'XXXXXX' #hinzufügen
TWITTER_ACCESS_TOKEN_SECRET='XXXXX' #hinzufügen
Hier wird beispielhaft das Verfahren zum Erfassen von Benutzerinformationen beschrieben.
Füllen Sie das Obige an einer beliebigen Stelle in settings.py aus.
views.py
CK = settings.SOCIAL_AUTH_TWITTER_KEY
CS = settings.SOCIAL_AUTH_TWITTER_SECRET
AT = settings.TWITTER_ACCESS_TOKEN
ATS = settings.TWITTER_ACCESS_TOKEN_SECRET
def getAccount(request,screen_name):
url = "https://api.twitter.com/1.1/users/show.json" #Endpunkte finden Sie in der offiziellen Dokumentation
params = {
'screen_name':screen_name
}
req = twitter.get(url, params = params)
if req.status_code == 200:
res = json.loads(req.text)
else:
res=""
print("Failed: %d" % req.status_code)
return res
Wie eingangs erwähnt, können Sie CSS nicht ohne die Bibliothek ausführen. .. .. Sie können auch scss installieren. Wenn es Ihnen nicht gefällt, können Sie die Hauptfarbe usw. auf einmal ändern.
** * Hinweis: Wenn das Auswahlfeld defekt ist und das Auswahlfeld das Auswahlfeld unten überlappt. Es gab ein Problem, dass es nicht richtig ausgewählt werden konnte. </ font> **
Ich war verzweifelt, aber der Reparaturcode wurde auf dem folgenden Github veröffentlicht. Wenn Sie diesen verwenden, wird er gelöst!
cropper.js
Eine Bibliothek, die Bilder zuschneidet. Natürlich konnte ich den Trimmprozess nicht selbst implementieren, also habe ich ihn verwendet.
Egal wie oft ich das Dokument gelesen habe, die Implementierungsmethode war ein Rätsel, aber ich habe die folgende Site Dutzende Male verstanden.
Selbst wenn Sie ein paar Dutzend Mal durchlaufen, sollten Sie es wissen!
Meistens die oben verwendeten Bibliotheken.
Ab Django 3.0 wird der Treiber, der eine Verbindung zu MySQL herstellt, im offiziellen Dokument als von MySQL-Client empfohlen beschrieben. Daher habe ich versucht, ihn leise zu installieren, aber es ist ein Fehler aufgetreten. ..
python
$ pip install mysqlclient
> ~
check the manual that corresponds to your MySQL server version for the right syntax to use near 'rsion' at line 1
~
Geheimnisvoller Fehler
Ursache: Scheint auf eine ältere Version von MySQL zurückzuführen zu sein
Die Entwicklungsumgebung verwendet Cloud9 von AWS, aber mit Cloud9 wird MySQL im Ausgangszustand installiert.
Es scheint jedoch, dass die Version 5.5 ist und mysqlclient nur ab 5.7 verwendet werden kann. Deshalb habe ich 5.5 entfernt und 5.7 installiert.
python
sudo yum remove mysql* #Entfernen Sie MySQL
#(Wenn Sie vorsichtig sind, sudo yum-y remove mysql-config mysql55-server mysql55-libs mysql55)
sudo yum -y install mysql57-server mysql57
sudo yum -y install mysql-devel
Ursprünglich war der Zeichensatz auf utf-8 eingestellt, sodass Piktogramme nicht registriert werden konnten.
Ändern Sie die Einstellungsdatei
/etc/my.cnf
[mysqld]
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
Starten Sie MySQL neu
/etc/my.cnf
sudo service mysqld restart
Die Tabelle wurde bereits mit utf-8 erstellt. Ändern Sie sie daher
mysql
ALTER TABLE targettable CONVERT TO CHARACTER SET utf8mb4;
Im Fall von Django sind Einstellungen auch auf der Django-Seite erforderlich
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xxx',
'USER': 'xxx',
'PASSWORD': 'xxx',
'HOST': '',
'PORT': '',
#OPTIONEN hinzugefügt
'OPTIONS': {
'charset': 'utf8mb4',
},
}
}
Jetzt können Sie Piktogramme ausgeben und registrieren!
Wir werden weiterhin unser Bestes tun, um Funktionen hinzuzufügen. Bitte registrieren Sie sich
Recommended Posts