ジャンゴ
、ジャンゴ
DjangoのWebアプリケーションフレームワークはPythonで書かれたオープンソース、です。フレームモード、つまりモデルM、およびテンプレートビューのV Tを使用して、MTV もともとは、CMS(コンテンツ管理システム)ソフトウェアであるコンテンツベースのウェブサイトの一部にローレンス・パブリッシング・グループのニュースを管理するために開発されました。これは、BSDライセンスの下で2005年7月にリリースされました。このフレームワークは、名前のベルギーのジプシージャズ・ギタリストのジャンゴ・ラインハルトに基づいています。
第二に、ジャンゴを開始
1. jiango-adminのstartprojectのプロジェクト名
- python manage.pyのrunserver
- python manage.py startappのアプリケーション名
注意:
作成されたアプリケーションは、settings.pyファイルを登録するに行かなければなりません。
プロジェクトを作成するには、コマンドラインではないtempolates、およびsettings.pyファイルやパスなしの設定を行います。
あなたはまた、アプリケーションや登録の作成をサポートすることができ、自動的にフォルダやパスを作成することができtempolateを作成pycharmを使用してください。アプリケーションを高めるためには、手動で追加して登録する必要があります。
第三に、Djangoプロジェクトを作成します
3.1ファイル
3.1.1 url.py:
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/', views.login),
url(r'^reg/', views.reg)
]
3.1.2ビューファイル:
# Create your views here.
def login(request):
pass
def reg(request):
pass
3.2 reder、のHttpResponseを使用して、リダイレクト
直接バックhtmlページへreder:
def reg(request):
user_dic = {'name': 'ceng', 'pwd': 123}
return render(request, 'reg.html')
# 第一种给模板传值的方式
return render(request, 'reg.html', {'xxx': user_dic})
# 第二种给模板传值的方式,但是会出现效率问题
return render(request, 'reg.html', locals())
HttpResponseには、文字列を返します。
def login(request):
return HttpResponse('你好')
リダイレクトをリダイレクトします。
def home(request):
return redirect('http://www.badu.com')
3.3静的設定ファイル
通常の状況下では、静的リソースファイルは限り静的リソースへのアクセスとして、あなたはstasicで始まる必要があります静的リソースアクセスインタフェースプレフィックスは、ある「/ /静的」、STATIC_URL =位置の設定に配置され、stasicフォルダに統一されています。
手動で静的なファイルアクセスリソースを設定します。
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'static1'),
os.path.join(BASE_DIR, 'static2')
]
注:ファイルの検索順序は、静的、static1、STATIC2の順になり、最終的には唯一のエラーを見つけることができませんでした。
3.4動的構成
死んでしまうの静的な文字へのアクセスを書く、そしてダイナミックには、いくつかのテンプレートの構文を使用してHTMLファイルで、この問題を解決することができます。
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
3.5フォームインタラクティブフォーム
デフォルトモードは、要求が、負荷のURLをパラメータを運ぶ取得、リクエストフォームを送信するためのフォームを取得するのですか?背後にあります。
リクエストの欠点は安全ではありません取得、有限のサイズパラメータを搭載。
あなたはポストの要求を提出したい場合は、settings.pyファイルに文をコメントすることができます
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
3.6リクエスト要求
GETまたはPOSTを返すように要求するので、異なる要求タイプ、異なる論理演算の必要性を送信します。大文字モード取得要求は、文字列、取得するためのデフォルトの要求、これ判別処理要求を返します。
if request.method == 'POST':
print('这是post请求')
print ('这是get请求')
リクエストを得る方法:
request.POST
# 默认获取最后一个元素
username = request.POST.get('username')
# 取出完整列表
hobby = requset.POST.getlist('hobby')
# get和post在后端获取用户数据的时候 规律是一样的
request.GET
3.7 MySQLの接続
Djangoの接続mysqlの:
最初のステップ:設定ファイルの構成プロパティ:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 指定数据库
'NAME': 'day57', # 到底使用哪个库
'USER':'root',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':3306,
'CHARSET':'utf8'
}
}
ステップ2:あなたはまた、次の--init--.py --init--.pyプロジェクト名にアプリケーションファイルの名前を指定することができます。
import pymysql
pymysql.install_as_MySQLdb()
3.8ジャンゴORM
オブジェクトリレーショナルマッピング(オブジェクトリレーショナルマッピングと称するORM)。
クラス - >データベーステーブルと、オブジェクト - >ログ表、オブジェクトのプロパティを取得 - >記録フィールドの値に対応します。
長所:人々はまた、迅速かつデータベースを使用して簡単にすることができ、データベースの操作を行うことはできません。
短所:ので、パッケージの大きさのプログラムの実施の低効率につながる可能性が高すぎます。
注意:ライブラリを構築することはできませんORM、自分で作成する必要があり、あなたがmodels.pyでクラスを作成します。
from django.db import models
# Create your models here.
class Userinfo(models.Model):
# 设置id字段为userinfo表的主键 id int primary key auto_increment
# 在django中 你可以不指定主键字段 django orm会自动给你当前表新建一个名为id的主键字段
id = models.AutoField(primary_key=True)
# 设置username字段 username varchar(64) CharField必须要指i定max_length参数
# 在django orm中 没有char字段 但是django 暴露给用户 可以自定义char字段
username = models.CharField(max_length=32)
# 设置password字段 password int
password = models.IntegerField()
# 新增的字段 可以提前设置默认值
phone = models.BigIntegerField(default=110)
# 新增的字段 可以设置为空
addr = models.CharField(max_length=64,null=True)
注意してください!!!!!!
データベースに関連付けられModels.py各修正コード、次の2つのコマンドは、端末で入力されなければなりません。
# 将操作生成记录,并没有生成表
python manage.py makemigrations
# 及记录迁移到数据库
python manage.py migrate
3.9動作磁界
欠失はなど、主キー属性のデフォルト値なお、models.pyで直接編集することができ、あなたはデータの移行を変更するたびに行われるべきであるフィールドを検索に変更します。