プロセスジャンゴ(Djangoは仮想環境だけでなく、簡単なプロジェクトの作成テンプレート、ビュー、モデルを構築するために)

著作権:長安白https://blog.csdn.net/weixin_44074810/article/details/90740360

、Djangoの導入
MVTモード:
1. Mスペルモデルである、MVCにおいて同じ関数Mは、データベース、データ処理との相互作用の原因です。
同じMVCにおけるビューの2 V綴り、及びCの機能は、サービス処理を行い、要求を受信し、応答を返します。
3. Tテンプレートの綴り、およびMVC同じ機能でV、返される責任のhtmlパッケージ構造。

Djangoは、仮想マシンに仮想環境を構築します

  1. インストールコマンド仮想環境:
sudo pip install virtualenv
sudo pip install virtualenvwrapper

2.仮想環境を保存するディレクトリを作成します。

mkdir $HOME/.virtualenvs

3.オープン〜/ .bashrcファイルには、以下を追加します。

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
在第三步如果出错了可以
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
       -----> 添加上这句 

4、実行

source ~/.bashrc
  1. python3では、仮想環境を作成します
mkvirtualenv -p python3 虚拟环境名称
例 :
mkvirtualenv -p python3 py3_django

第二に、どのように仮想環境を使用するには?

7. 使用虚拟环境的命令 :workon
例 :使用py3_django的虚拟环境
workon py3_django

8. 退出虚拟环境的命令 :deactivate

3.删除虚拟环境的命令 :rmvirtualenv 虚拟环境名称
例 :删除虚拟环境py3_django
先退出:deactivate
再删除:rmvirtualenv py3_django

仮想環境でのインストールキット

  1. キットのインストール場所:
    次のpython3バージョン:

    〜/ .virtualenvs / py3_flask / libに/ python3.5 /のsite-packages

  2. パッケージのインストールのジャンゴ- 1.11.11のpython3のバージョン:
    PIPパッケージ名インストール
    例:インストールパッケージのジャンゴ- 1.11.11
    ピップはジャンゴをインストール== 1.11.11

  3. 仮想環境にインストールパッケージを見る:
    PIP一覧

第三に、Djangoプロジェクトの作成
手順
1. Djangoプロジェクトを作成
ジャンゴ管理者startprojectの名を

  1. サブアプリケーションの作成
    のPythonをmanager.py startappの名

  2. プロジェクトの作成
    :プロジェクトのコマンドを作成します。1.
    ジャンゴ-ADMIN startprojectのプロジェクト名
    例:あなたは、デスクトップディレクトリ内のコードののBookManagerと呼ばれるプロジェクトを作成したい、次のコマンドを実行します。
    CD〜/デスクトップ/コード
    ジャンゴ-ADMIN startprojectののBookManager
    ビューをディレクトリツリー図ツリーコマンドを使用することができます

    1. ここのBookManager同じ名前のディレクトリプロジェクト。

    2. settings.pyは、プロジェクトの全体的なプロファイルです。

    3. urls.pyは、プロジェクトのURLの設定ファイルです。

    4. wsgi.pyプロジェクトWSGI互換のWebサーバエントリ。

    5. manage.pyは、プロジェクトの経営を通じて、プロジェクト管理ファイルです。

    6. 開発サーバを実行し
      、次のようにサーバーのコマンドを実行して:
      Pythonはmanage.pyののrunserver IP:ポートを
      か:
      Pythonはmanage.pyののrunserverは
      IPとポート、IPが127.0.0.1で既定、8000のデフォルトのポートを書き込むことはできません。

      1. デバッグモードでDjangoのデフォルトモーダル仕事、あなたは、追加、変更、ファイルを削除した場合、サーバが自動的に再起動します。
      2. プレスCTRL + Cは、サーバーを停止します。

2.サブアプリケーション作成
コマンドのサブアプリケーションを使用して作成した:
Pythonのmanage.py startappのサブアプリケーション名を

上記のプロジェクト管理ファイルが作成されたときmanage.pyは自動的に生成されます。
例:作成したばかりのBookManagerプロジェクトで、実行、ユーザー書籍アプリケーションモジュールを作成する:
1. CD〜/デスクトップ/コード/ブック
2. Pythonのmanage.py startappのブック
サブアプリケーションのディレクトリ構造の説明:
1サイト管理背景サイトに関連付けられている。admin.py設定ファイル。
現在のサブアプリケーションの構成情報2. apps.pyファイル。
データベースの移行の履歴ファイルを格納するために使用される3.移行ディレクトリ。
4.ファイルデータベースモデルクラスを保存するユーザーをmodels.pyの。
テストケースを開発するための5 tests.py文書は、ユニットテストを書きます。
Webアプリケーションのビューを作成するための6 views.pyファイル。

  1. 登録サブアプリケーションをインストール
    settings.pyでのプロジェクトの設定ファイルに、プロジェクトのINSTALLED_APPSの長期保存がサブインストールされたアプリケーションを登録されている、
    最初のプロジェクトINSTALLED_APPSで:
    アプリケーションのサブインストール方法を登録するには、設定ファイルには、サブアプリケーションのアプリですINSTALLED_APPSリストに追加Configクラスでの.py。
    例:プロジェクトに追加し、作成したブックサブアプリケーションは、INSTALLED_APPSにリストに追加することができます
    「book.apps.BookConfig」

  2. 設定しpycharm環境
    問題1:ジャンゴモジュールを見つけることができるようになります
    迅速モジュールジャンゴを設定するためのパスを見つけることができるのpython:ターミナルでタイプを

第四に、モデル
1. Djangoのプロンプトデータベース開発:
1. MVTデザインパターンのモデル、(。に対応したデータベースと対話するための専用のModels.py
ORMフレームワークに組み込まれたモデルは、直接の必要がないので、2データベースプログラミング。
3.代わりに、モデルクラス定義、付加および欠失は、データベーステーブルを変更して再検索モデルクラスとオブジェクトを経て完成される。
4.フレームは、それぞれのオブジェクトに関連付けられたORM列データベーステーブルであり、各変換は、オブジェクト指向データベースの操作を行います。

データベース開発のためのステップ2ジャンゴ:
1.定義モデルクラス
2.移行モデル
3.データベースの操作

  1. 定義モデル
例:
    在models.py中定义模型类,继承自models.Model

    from django.db import models

    # Create your models here.
    # 准备书籍列表信息的模型类
    class BookInfo(models.Model):
        # 创建字段,字段类型...
        name = models.CharField(max_length=10)

    # 准备人物列表信息的模型类
    class PeopleInfo(models.Model):
        name = models.CharField(max_length=10)
        gender = models.BooleanField()
        # 外键约束:人物属于哪本书
        book = models.ForeignKey(BookInfo)

2.モデルの移行(テーブルを構築します)

是在pycharm中最下面的 Terminal 中进行输入
迁移由两步完成 :
      1. 生成迁移文件:根据模型类生成创建表的语句
           python manage.py makemigrations
      2.执行迁移:根据第一步生成的语句在数据库中创建表
           python manage.py migrate

V.サイト管理

1. 站点: 分为内容发布和公共访问两部分
2. 内容发布的部分由网站的管理员负责查看、添加、修改、删除数据
3.Django能够根据定义的模型类自动地生成管理模块
4. 使用Django的管理模块, 需要按照如下步骤操作 :
    1.管理界面本地化
    2.创建管理员
    3.注册模型类
    4.发布内容到数据库

1.ローカル管理インターフェイス
settings.pyレーンで
LANGUAGE_CODE =「EN-US」---->「ハンス-ZH」
TIME_ZONE =「UTC」---->「上海のアジア/」
言語の時間と設定する
現地を言語の地元の習慣を使用して表示して時間をする場合には、ここでのローカライズは、中国で行われている。
中国本土簡体字中国語、タイムゾーン、タイムゾーンアジア/上海を使用し、使用しないとき区、北京では、ここで注意を払います。

2.管理者を作成します。

创建管理员的命令 :
   python manage.py createsuperuser
按提示输入用户名、邮箱、密码
重置密码
   python manager.py changepassword 用户名

登陆站点可以输入 python manage.py runserver 点击IP连接输入用户名和密码登陆

3.モデルクラスレジスタ
アプリケーションのadmin.pyモデルクラスのレジスタファイルでは、
モデルモジュールをインポートする必要があります。book.modelsからのBookInfo、PeopleInfoをインポート

4.データベースにコンテンツを公開する
コンテンツのリリース後、最適化モデルクラスのショー

# 准备书籍列表信息的模型类
class BookInfo(models.Model):
    # 创建字段,字段类型...
    name = models.CharField(max_length=10)
添加下面的代码:设置一个str方法
    def __str__(self):
        """将模型类以字符串的方式输出"""
        return self.name

第六に、ビュー、およびURL

1. 站点管理页面做好了, 接下来就要做公共访问的页面了.
2. 对于Django的设计框架MVT.
    1. 用户在URL中请求的是视图.
    2. 视图接收请求后进行处理.
    3. 并将处理的结果返回给请求者.
3. 使用视图时需要进行两步操作
    1.定义视图
    2.配置URLconf
  1. ビューの定義

    1. Pythonはアプリケーションがviews.pyに定義され、関数の図です。
    2. 最初のパラメータは、タイプのHttpRequest reqeustのオブジェクトのビューすべての情報要求を含んでいます。
    3. ビューは、要求者に返された応答情報を含むたHttpResponseオブジェクトを返す必要があります。
    4. HttpResponseには、モジュールをインポートする必要があります。django.httpのインポートからのHttpResponse

    コードファイルのビューを作成するには:
    1.インポートモジュールのHttpResponseを
    django.utils.httpwrappersからのインポートのHttpResponse
    2.カスタムビュー機能
    DEF指数(要求を):
    のHttpResponseを返す(「OK」)

  2. URLconfの設定
    プロセスをビューを見つける:
    。ブラウザのアドレスバーに1.要求元のURLを入力して、Webサイトへの要求
    。2.サイトの取得URL情報
    。3.次に1つずつ良い試合をURLconfの書き込み
    4.一致が対応呼び出された場合【図
    5一致が全てのURLconfが成功見つからない場合。404、エラーを返す。
    設け1.URLconf入口---->設定ファイル

2つのステップは、ファイルurls.py内のURLconf構成---->の設定を完了するのに必要とされます

1.在项目中定义URLconf

 还要导入   from django.conf.urls import url,include
 在urls文件中的url下面添加一句url ---> url(r'^',include('wen.urls'))


2.在应用中定义URLconf
提示:一条URLconf包括URL规则、视图两部分
 URL规则使用正则表达式定义.
	视图就是在 views.py 中定义的视图函数.

ファイルのURLに新しいファイルを作成します。

下面这两句导入属于固定写法
from django.conf.urls import url
from wen.views import index

urlpatterns = [
		url(r'^$',index)  ----> 路由引导视图函数
]

そして、http://127.0.0.1:8000/ページに直接に入りますviews.py書かOK出力

  1. テスト:アクセス要求
    http://127.0.0.1:8000/を - >出力はOKになります

ビューを使用する際に必要な2つのステップ、順不同で二つのステップ

    1.配置URLconf
    2.在应用/views.py中定义视图

VIIテンプレート
ステップでテンプレート
1テンプレート作成
2.テンプレート探索経路
着信データは、テンプレート受信3.図
4.テンプレートデータ処理を

1.テンプレートを作成します。

1. 在应用同级目录下创建模板文件夹templates. 文件夹名称固定写法.
2.在templates文件夹下, 创建应用同名文件夹. 例, Book或者直接创建HTML文件,在HTML文件中写入数据做测试

2.テンプレートの検索パスを設定
パスの設定の下に書かれたパスDIRSテンプレートテンプレートに配置された[os.path.join(BASE_DIR、「テンプレート」を )]

バックでBASE_DIRは、あなたのキークリップのHTMLファイルを記憶させます

3.ビューテンプレート着信データの受信
ビューテンプレートがロードされ

(リクエスト、「index.htmlに見解がDEFファイルプラス関数の戻り値は、レンダリングでは ---->) のインポートものレンダリングdjango.shortcutsをインポートする必要があり
、インデックス(要求)DEF:
リクエスト、「index.htmlを」(レンダリングを返します)

その後、再び、または現在のページに書き込むことができます。

def index(request):
    name = '如花'
    context = {
        'name':name
    }
    return render(request,'index.html',context)
然后再HTML文件中<h1>{{ name }}北京一卡通下大雨啊哈哈哈</h1>
加上两个大括号里面的参数就是上面的name  上面的name的如花就会传递到HTML文件里的name中

在测试访问
http://127.0.0.1:8000/  --->  会输出 “如花北京一卡通下大雨啊哈哈哈”

8例は
本のリストを表示します

実装手順

1.创建视图
2.创建模板
3.配置URLconf

1.ビューを作成します。

1. 查询数据库数据
2. 构造上下文
3. 传递上下文到模板

# 定义视图:提供书籍列表信息
def bookList(request):
    # 查询数据库书籍列表数据
    books = BookInfo.objects.all()
    # 构造上下文
    context = {'books':books}
    # 数据交给模板处理,处理完成后通过视图响应给客户端
    return render(request, 'Book/booklist.html', context)

2.テンプレートを作成します。

1. 读取上下文数据
2. 构造网页html文档 : 书籍信息以列表样式展示
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>书籍列表信息</title>
</head>
<body>

<ul>

</ul>

</body>
</html>

3. URLconfの設定
のアプリケーションに1 urls.pyファイルを

from django.conf.urls import url
from book.views import index,bookList

urlpatterns = [
    url(r'^$',index),
    # 匹配书籍列表信息的URL,调用对应的bookList视图
    url(r'^booklist/$',bookList)
]

九、構成、および静的ファイル

プロファイル

  1. BASE_DIR
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(ファイル)))
    プロジェクトの現在のルートディレクトリに、Djangoはそのプロジェクトに関連する文書を見つけるために、我々はまた、このパラメータを使用することができますコンフィギュレーション・ファイルのパス。

  2. DEBUG
    デバッグモードでは、プロジェクトの初期値を作成した後、デバッグモードでの作業時のデフォルトである、真です。
    役割:
    再起動し、自動的に、コードファイルを変更します
    Djangoの異常な手順は、前面表示、詳細なエラー情報を追跡するとき
    、代わりにデバッグモードのダウンだけでサーバーエラーを返す(500)

注意:行は、Djangoはモーダルモードで実行実行している展開しないでください、DEBUG = Falseをとのallow_hostsを変更することを忘れないでください。

  1. 現地の言語とタイムゾーン
    Djangoのサポートローカリゼーションプロセス、つまり、言語とタイムゾーンのサポートローカライズ。
    ローカライズは地元の習慣を使用して、表示言語、および時間で、ここではローカライズが中国で行われ、
    中国本土簡体字中国語は、
    タイムゾーンアジア/上海を使用して、タイムゾーンは、北京はここで使用されていない時間帯に注意を払う、と彼は言いました。

    1. エンジニアリングのデフォルト言語と英語のタイムゾーンとUTC標準時間帯の
      「EN-US」LANGUAGE_CODE =#言語
      TIME_ZONE =「UTC」タイムゾーン##時間帯

      2.中国本土への言語とタイムゾーン情報を変更し
      LANGUAGE_CODE =「ZH-ハンス」
      TIME_ZONE =「上海にアジア/」

静的ファイル
の順序では、静的なファイルを提供するために、次の2つのパラメータを設定する必要があります。
STATICFILES_DIRS格納ディレクトリは、静的ファイルを見つけるために、
STATIC_URLアクセス静的ファイルのURL接頭辞

例:
1)静的ファイルを保持するために、プロジェクトのルートディレクトリの下に、静的なディレクトリを作成します。
2)のBookManager / settings.py二つのパラメータで静的ファイルを変更します

STATIC_URL = '/静的/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR、 '静的')
]

3)任意の静的ファイルで、この時点で訪問することを静的にファイルの静的URL /静的/パスを追加するために使用することができます。

例えば、我々はあなたがアクセスするブラウザで127.0.0.1:8000/static/index.html使用することができ、ディレクトリに静的なのindex.htmlファイルを追加します。

それとも私たちは、あなたがアクセスするブラウザで127.0.0.1:8000/static/book/detail.html使用することができ、静的なディレクトリにサブディレクトリとファイルブック/ detail.htmlを追加しました。

# django 是如何区分静态资源和动态中院的呢
# 就是通过 STATIC_URL
# 我们在访问静态资源 http://ip:port + STATIC_URL + 文件名
# django 就会认为我们是在访问静态资源,这个时候会去静态资源文件夹中进行匹配

アプリケーションのアプリケーション構成
各アプリケーションディレクトリには、アプリケーションを保存するには、関連する情報についてapps.pyファイルが含まれています。

アプリケーションを作成する際、Djangoはこのような、apps.pyファイルへのアプリケーションの設定クラスを作成します

django.appsからのAppConfigをインポート

クラスBookConfig(のAppConfig):
名= 'ブック'

私たちは、ショーは、このアプリケーションの構成プロパティをインストールし、登録している、settings.pyでのプロジェクトINSTALLED_APPSのリストにこれらを追加します。

1. AppConfig.name属性表示这个配置类是加载到哪个应用的,每个配置类必须包含此属性,默认自动生成。
2. AppConfig.verbose_name属性用于设置该应用的直观可读的名字,此名字在Django提供的Admin管理站点中会显示,如
from django.apps import AppConfig

class UsersConfig(AppConfig):
  name = 'book'
  verbose_name = '图书管理'

おすすめ

転載: blog.csdn.net/weixin_44074810/article/details/90740360