ディレクトリ
レビュー
環境
ノード:公式サイトには、インストールパッケージをダウンロードし、インストールを欺くために - https://nodejs.org/zh-cn/ =>は、NPMに基づいています
cnpm:NPMインストール-g cnpm --registry = HTTPS://registry.npm.taobao.org
VUE / CLI:cnpmインストール-g @ VUE / CLI
プロジェクトの作成
CD収納プロジェクトディレクトリ
VUEは、組立設置するプロジェクト名=>バベル、VUE-ルータ、vuexを作成します
コンフィギュレーション・プロジェクト開始
pycharm開いているプロジェクト、コンフィギュレーション・NPM開始
main.jsロード完了VUE環境、ルートコンポーネントをレンダリング終了し、ロードVUE-ルータ、VUE環境負荷カスタマイズされた環境
VUE-ルータコンフィギュレーションルーティング
<router-link to=""></router-link> | this.$router.push()完成跳转 <router-view/> 完成页面组件的占位 在router/index.js中 完成路由配置 路径-视图组件 映射关系 两种路由传参 配置 跳转 获取 path:'/user' to='/user?pk=1' $router.query.pk path:'/user/:pk' to='/user/1' $router.params.pk :to="{name:'user'}"
コンポーネントのライフサイクルをフック:作成からノードコールバックの特別な時間で破壊のライフサイクル全体の組立方法
作成(){}完全な背景データ要求
(){非常に時間がかかり、要求されたデータをバックを完了する}を搭載
プロトタイプのJS
Vue.prototype.count = 100
すべてのVueのインスタンスは、カウントにアクセスすることができます
アヤックスプラグインのVUE:axios
1、(プロジェクトディレクトリ内になければなりません)プラグインをインストールします。
ターミナルコマンド入力ボックスコードで:
cnpm install axios
D:\python12期\day67\代码\d_proj>cnpm install axios
√ Installed 1 packages
√ Linked 4 latest versions
√ Run 0 scripts
√ All packages installed (5 packages installed from npm registry, used 2s(network 2s), speed 80.5kB/s, json 5(1
5.93kB), tarball 107.87kB)
////代表安装成功
V-PROJの先端プロジェクトmain.jsに配置された2
Ajaxリクエストは、のいずれかの論理コンポーネントに送ら:
this.$axios({
url:'http://127.0.0.1:8000/cars/',
method:'get',
}).then(response =>{
console.log(response);
//this.cars = response.data;
}).catch(error => { //网络状态码为4xx、5xx
console.log(error);
});
CORSクロスドメインの問題(同一生成元ポリシー)
相同:HTTP同じプロトコル、同じサーバのIPアドレス、アプリケーションポートに同じアプリ
クロスドメイン:プロトコル、IPアドレスが、別のポートを使用して、ある、クロスドメイン
デフォルトの同一生成元ポリシー、クロスドメインの問題ジャンゴ
ジャンゴソリューション:
CORSに従いジャンゴモジュール
pip install django-cors-headers
設定で登録モジュールは、ミドルウェア構成されました:
INSTALLED_APPS = [
...
'corsheaders'
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware'
]
今度はクロスドメインの設定を許可します
CORS_ORIGIN_ALLOW_ALL = True
Vue配置ElementUI
(プロジェクトディレクトリ内になければなりません)プラグインをインストールします。
cnpm install element-ui
設定main.jsで
import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI);
使用
CV大法
Vueの設定JQ + BS:
jQueryの
cnpm install jquery
vue/cli 3 配置jQuery:在vue.config.js中配置(没有,手动项目根目录下新建)
js
const webpack = require("webpack");
module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
Popper: ["popper.js", "default"]
})
]
}
};
ブートストラップ
cnpm install bootstrap@3 //前端用@,后端用==赋值
vue/cli 3配置BootStrap:在main.js中配置
js
import "bootstrap"
import "bootstrap/dist/css/bootstrap.css"
対話単離し前端と後端
ドメイン間でのバックグラウンド処理
プラグインをインストールします。
pip install django-cors-headers
插件参考地址:https://github.com/ottoyiu/django-cors-headers/
プロジェクトの構成:dev.py
注册app
INSTALLED_APPS = [
...
'corsheaders'
]
添加中间件
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware'
]
允许跨域源
CORS_ORIGIN_ALLOW_ALL = True
国際化の設定
ALL
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
プロジェクトルートディレクトリのファイルの新しいvue.config.js
const webpack = require("webpack");
module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
"window.$": "jquery",
Popper: ["popper.js", "default"]
})
]
}
};
新しいsettings.js下のコード/ V-PROJ / SRC /資産/ JS /
export default {
base_url: 'http://127.0.0.1:8000'
}
注意:所有的js文件,开头都是export default
url: this.$settings.base_url + '/cars/',
url拼接参数:任何请求都可以携带
data:{} //数据包参数:get请求是无法携带的
created(){} //可以拿到路由传递来的car主键
let pk = this.$route.query.pk || this.$route.params.pk;
主键不存在,就直接结束方法
if (!pk) return false;
主键存在才求后台
vw:屏幕宽度
vh:屏幕高度
不会随页面的改变而改变,是固定的
json可以解码翻译页面上的英文,可以设置为中文
asill先设置为false
新プロジェクトは、いくつかのことを行う必要があります。
新しいプロジェクトapp.vueファイルVUEは、5つのコードを固定した後、
<template>
<div id="app">
<router-view/>
</div>
</template>
パブリックフォルダのインデックスファイル、
<html lang="zh">
「../views/Home」から最後のインポートホーム用.vueインデックス内のルータを削除します
一般HelloWorld.vue内部のコンポーネントには、About.vueとHome.vueファイルのビューを削除するのsrc /資産/ logo.png写真を削除します
新Home.vueファイル、
新しいCSSの下のフォルダの資産、JS、IMGフォルダでは、
ジョブステップ:
新Car.vueファイルビュー、ルータのインデックスファイルのインポートカー
、Nav.vueファイルコンポーネントの作成
インポートホーム・ファイルのインポートからナビ...
車のインポートファイルには、ナビゲーションをインポートします。。。。名前:車の登録とNAV
NAV、プレースホルダ、新しいグローバルファイル、CSSファイルを追加し、次のコードを書きます
html,body,h1,h2,h3,h4,h5,h6,p,ul{
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
a {
color: black;
text-decoration: none;
}
cssファイル上記の導入を必要とするために利用Main.js、
文書内のnav-定義されたスタイル
<style scoped>
.nav {
height: 60px;
background-color: #eee;
}
.nav ul {
width: 1100px;
margin: 0 auto;
}
.nav li {
float: left;
padding: 15px 20px 0;
}
.nav a {
border-bottom: 3px solid transparent;
padding-bottom: 2px;
}
.nav a.router-link-exact-active {
color: orange;
border-bottom-color: orange;
}
</style>
ページのレンダリングは、ホームファイル内のスパンで書かれた内容を追加し、あなたも、それらを区別するために、背景色を追加することができ、その後、車です
スパン結合事象に設定したレイアウトは、クリックしてジャンプを達成するために、スクリプトで記述された別のページ、書き込みロジックコードにジャンプします。
コンポーネントのフォルダに新しいCarTagファイル、設定されたスタイル
IMGファイル、画像を追加cardetailファイルにビューを作成し、スタイルを設定し、index.jsでルートを追加するには、よく知られたグループ設定:PKを
車のタイトル文書に車を追加し、ジャンプページを完了するためには画像をクリックし、cardetailファイルの画面の幅と高さのセット、のページのうち、ズームに変更されることはありません
プロジェクトの準備ジャンゴ背景、新しいプロジェクト良いのVUE、新しいDjangoのプロジェクトd_projは、車でのルーティングのURLを追加し、プロジェクトを実行することができますディレクトリを開き、
オフCSRF django.httpインポートJsonResponseモジュール、ミドルウェア設定NOTEから導入Get_cars関数がビューで定義され、
コンフィギュレーション・国際化を変更
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
その後、URLのルートが最初のコメントを追加する前に、そしてプロジェクトを実行する、あなたは、ページDjangoの登録が成功ドライブを表示することができるようになります
車のファイルに作成()を示している:データベースでの取得データへの完全な背景AJAXリクエストを
書かれたcardetailファイル詳細ページロジック、ファイル内のコードを書くには、#TODO位置に直接コメントを配置することができます
そして、(プロジェクトディレクトリの下になければなりません)プラグインをインストールします。
ターミナルコマンド入力ボックスコードで:
cnpm install axios
D:\python12期\day67\代码\d_proj>cnpm install axios
√ Installed 1 packages
√ Linked 4 latest versions
√ Run 0 scripts
√ All packages installed (5 packages installed from npm registry, used 2s(network 2s), speed 80.5kB/s, json 5(1
5.93kB), tarball 107.87kB)
////代表安装成功
V-PROJの先端プロジェクトmain.jsに配置された2
Ajaxリクエストは、のいずれかの論理コンポーネントに送ら:
this.$axios({
url:'http://127.0.0.1:8000/cars/',
method:'get',
}).then(response =>{
console.log(response);
//this.cars = response.data;
}).catch(error => { //网络状态码为4xx、5xx
console.log(error);
});
次に、フロントエンドmain.js、最初に導入axiosに配置Axios
「axios」からインポートaxios
vue.prorotype ......
フロントエンドの車へのファイルこれ。$ Axios({...})に配置されたURLを、要求されたデータが返され、後端ビューでの印刷情報、
CORSクロスドメインの問題(同一生成元ポリシー)
相同:HTTP同じプロトコル、同じサーバのIPアドレス、アプリケーションポートに同じアプリ
クロスドメイン:プロトコル、IPアドレスが、別のポートを使用して、ある、クロスドメイン
デフォルトの同一生成元ポリシー、クロスドメインの問題ジャンゴ
ジャンゴ・ソリューション、Djangoのプロジェクトのインストール
pip3 install django-cors-headers
ターミナルコマンド入力ボックスコードで:
pip3 install django-cors-headers
インストールが成功した情報表示
Collecting django-cors-headers
Downloading https://pypi.doubanio.com/packages/21/93/b1efe344f5b7e60ea2aa4e54f76d8b50c93d7db73d69dd95e9e97a696
c96/django_cors_headers-3.2.0-py3-none-any.whl
Requirement already satisfied: Django>=1.11 in e:\python\lib\site-packages (from django-cors-headers)
Requirement already satisfied: pytz in e:\python\lib\site-packages (from Django>=1.11->django-cors-headers)
Installing collected packages: django-cors-headers
Successfully installed django-cors-headers-3.2.0
次いで、中間体の後端部に(ミドルウェア)の設定を加え、
'corsheaders.middleware.CorsMiddleware',
Corsheadersは、上で紹介した輸入corsheadersミドルウェア
「corsheaders」の上にミドルウェアに登録し、次のミドルウェアで開いてクロスドメイン・リソースを追加しますCORS_ORIGIN_ALL =真を
DjangoのプロジェクトCORSは、登録モジュール構成ミドルウェア、オープン許容クロス(PIP3ジャンゴ-CORS-ヘッダをインストール)モジュールを搭載しました
自動車バックAJAXリクエストの先端に設けられ、データベースに得られたデータは、データを返すことは正常であるか異常です
設定されたURLのパラメータは、GETリクエストデータを運ぶことができない、一例を運ぶことができる任意の要求、削除要求スプライシング、データパケットのパラメータを、paramsは
ジャンゴで定義された車のクラスのバックエンドモデルでは、継承モデルの追加タイトル、価格、IMG、情報(詳細フィールド、大きなテキスト)フィールド
メソッド定義されたメタ、反射法で定義されたクラスの車、
新しいメディアフォルダのルートに、コンフィギュレーション・ファイルの絶対パスに設定に移動
MEDIA_ROOT = os.path.join(BASE_DIR、 'メディア')
URLで定義されたルーティングのURL
URL(r'media /(?P
インポート設定をdjango.congからインポートファイルに進みます
そして、admin.py django.contribインポート管理から導入行きます
admin.site.register(models.Car)、その後スーパーユーザを作成するために、データベース移行コマンドを実行し、
管理者ユーザでログインした後、データエントリー、
すべての車のバックグラウンドデータが返され、車は、インターフェースとレンダリング(グローバルJS構成)詳細
cardetailファイルでは、主キー、主キーが存在しない場合は、何を決定し、直接法の端を作成して来た車を経由してルーティングすることができます
次のように主キーを要求します背景には、新しいJSファイルが存在します:
export default {
base_url = 'http://127.0.0.1:8000'
}
carDetailの決意のcar.msgのグローバルCSSに設けMain.js、JS、
Vueの設定elementUI、新しい要素ファイルビュー、
ブートストラップによって24部、12部のレイアウト要素:要素とストラップとの間の差
設定したレイアウト、スタイル、ファイルボックス内の弾性要素など
jQueryの、ターミナルボックス内のブートストラップコマンドをインストールします。
cnpm install jquery
cnpm install bootstrap@3
次のようにJSファイルのvue.configは、ルートディレクトリに作成されました:
const webpack = require("webpack");
module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
"window.$": "jquery",
Popper: ["popper.js", "default"]
})
]
}
};
フロントエンドにおけるMain.jsブートストラップ構成は、構成のjQueryを提供しました
プロジェクトを再起動し、ブートストラップのスタイルを追加することができ、