Stepikプラットフォームの更新された「 Webテクノロジー 」コースは、Djangoの最新バージョンとPython 2とPython 3の両方を開発する機能をサポートするようになりました。 3月2日に、都合の良いときにコースを受講して証明書を取得できるように、期限なしで「 ソフトウェア開発のタスクの設定 」を再開します。 このコースは、ビジネスアナリストおよびシステムアナリストであるSystem ApproachのCEO、Dmitry Bezuglyによって教えられています。
Stepikはオンラインコースプラットフォームです。 それらのほとんどは、割り当てられた時間にのみ開いています-これは、優柔不断な参加者がサインアップすることを奨励します。 コースは、時間通りに配信する必要があるモジュールに分割されます。 締め切りは生徒のモチベーションを高めます。 全員が対応するわけではありません-生徒の平均9%が証明書を受け取ります。 Mail.Ru Groupの最初のコースは2015年9月1日にオープンしました。 その瞬間から、67,600人がサインアップし、5300の証明書を発行しました。 これまでで最も人気のあるコースはWeb Technologiesです。 12,400人が登録しており、これは平均の2倍です。 そのため、コースを改善し、さらに便利にしようとしています。
Webテクノロジーコースについて
私たちは、 Webテクノロジーを作成して、初心者プログラマーをPythonのWebおよびバックエンド開発の世界に紹介しました。 このコースでは、サーバーの操作パターンについて説明します。 Djangoフレームワークを使用したバックエンドの開発に特に重点を置いています。 また、フロントエンド開発の基本であるHTML、CSS、JSについても説明し、追加の章ではAjaxテクノロジーとリアルタイムメッセージの配信について説明します。
コースのタスクは異なります。ある場所では正解を選択し、別の場所では特別なフィールドに入力し、別の場所ではプログラムを作成します。 プログラミングタスクは相互接続されています。 コース全体を通じて、Q&Aサービス(簡素化されたスタックオーバーフロー)を段階的に補足します。 最初にnginxとgunicornを設定し、次に開発中のDjangoアプリケーションをデプロイします。
更新の詳細について
「Webテクノロジー」には、仮想マシンで実行する必要があるタスクがあります。 結果は自動テストによって制御されます。 多くの場合、テストは、仮想マシンにロードされているユーザーアプリケーションに対してHTTP要求を行います。 回答を分析し、タスクが正しく解決されたかどうかを理解します。
しかし、多くのタスクではこれでは不十分です。 たとえば、アプリケーションモデルをテストし、必要なフィールドとマネージャーがすべて定義されていることを確認します。 この場合、テストが必要なコードの隣の仮想マシンにスクリプトをアップロードします。
最近まで、Django 1.6は仮想マシンで実行されていましたが、すべてのテストをPython 2.7で実行しました。 Djangoは古く、人々はPython 3を使用したいという多くの苦情を受けました。したがって、Django 1.6-1.10のバージョンで正しく動作するようにスクリプトを書き直しました。 また、テスト自体については、2つのインタープリターが利用可能になりました。 最初に、テストはPython 2で実行され、エラーの場合はPython 3で実行されます。
Django 1.6から1.10に切り替えるときに知っておくべきこと
Djangoの新しいバージョンへの移行を容易にするために、アップグレード中に発生する可能性のある問題の短いリストを用意しました。 Django 1.7の重要な変更点は、データベース移行のサポートです。 Manage.pyには、 migrate
をmakemigrations
ためのmigrate
およびmakemigrations
。 syncdb
Django 1.9で削除されました。 移行の仕組みの詳細については、 ドキュメントをご覧ください。
また、Django 1.7では、 アプリケーションのロードメカニズムが大幅に変更されました。 環境DJANGO_SETTINGS_MODULE
を使用するスタンドアロンスクリプトがある場合は、 django.setup()
呼び出して、その中のアプリケーションを明示的に初期化する必要があります。 これは、管理コマンドを介して実行されるスクリプトには適用されません。
バージョン1.7では、新しいプロジェクト検証システムが導入されました。 validate
コマンドが削除され、続いてcheck
コマンドが削除されました。 問題を検出し、それらを修正するためのヒントを提供します。
バージョン1.8では、 AbstractUser.last_login
フィールドはnull
できnull
。 Django 1.10では、 AbstractUser.username
の長さが150文字AbstractUser.username
増加しました。 プロジェクトでAbstractUser
を使用する場合は、フィールドを変更するための移行を記述することを忘れないでください。 django.contrib.auth.Userの移行は既に存在します。 migrate
必要があるだけです。
また、バージョン1.10では、 django.conf.urls.patterns()
メソッドが削除され、 urlpatterns
テンプレートの作成に使用されました。 これで、 urlpatterns
通常のリストを割り当てることができます。 互換性のない変更の詳細については、公式ドキュメントをご覧ください。
Python 2から3に移行するときに知っておくべきこと
Python 3を試してみたいと思うなら、注意すべき主な違いについて読んでください。 新しいバージョンの言語では、 print
ステートメントはprint()
関数に置き換えられました。 辞書メソッドのitems()
、 keys()
およびvalues()
は、反復子を返すようになりました。 古いメソッドiteritems()
、 iterkeys()
およびitervalues()
サポートさitervalues()
なくなりました。 また、辞書からhas_key()
メソッドが削除されたため、代わりにin演算子を使用する必要があります。 xrange()
関数xrange()
、新しいバージョンではrange()
がそのタスクを実行するため除外されます。
数値タイプも変更されました。 Python 3以降、 long
型とint
型はone- long
結合されます。 その値には末尾のL文字がなくなったため、 repr()
関数は出力しません。 もう1つの重要な革新は、演算子/による整数除算の置き換えです。 これで、この操作はfloat
型の数値を返します。
Python 3はstr
を使用してテキストを保存し、 bytes
を使用してバイナリデータを保存します。 これらの型は結合できないことに注意してください。そうしないと、 TypeError
エラーがTypeError
。 あるタイプを別のタイプに変換するには、関数str.encode()
およびbytes.decode()
使用できます。 組み込みのベースストリングタイプは削除されます。
順序付けられていない型を比較すると、 TypeError
例外がTypeError
れるようになりましTypeError
。 ユーザーオブジェクトを比較する方法はサポートされなくなったため、並べ替えには__lt__()
関数を使用し、 __lt__()
するには__lt__()
および__eq__()
を使用する必要があります。 関数builtin.sorted()
およびlist.sort()
は、比較関数を提供するcmp
引数の受け入れを停止し、 key
に置き換えられました。
raw_input()
メソッドはinput()
名前raw_input()
変更raw_input()
れました。 Python 2のinput()
関数はeval(input())
と同等です。 execfile()
メソッドを削除しました。 execfile(fn)
代わりに、 exec(open(fn).read())
使用できます。
Python 2と3の違いのより詳細なリストはここにあります 。
コースの登録
コースに登録するには、 リンクをクリックしてください 。 3月2日から、期限なしで「 ソフトウェア開発のタスクを設定する 」コースを開始します。 また、Java、C / C ++、Hadoop、アルゴリズムプログラムなどの他のITコースもあります。 完全なリストはこちらをご覧ください。 Webテクノロジーの学習を頑張ってください!