ContentType&CORS&Git
ContentType
django內建的ContentType元件就是幫我們做連表操作
如果一個表與其他表有多個外來鍵關係,我們可以通過ContentType來解決這種關聯
from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation class DegreeCourse(models.Model): name = models.CharField(max_length=32) class Course(models.Model): name = models.CharField(max_length=32) # 資料庫不生成,只用於連結串列查詢 policy_list = GenericRelation("PricePolicy") class PricePolicy(models.Model): period = models.CharField(max_length=32) price = models.FloatField() # 課程型別 關聯django自動生成的contenttype表 content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() # 不在資料庫中生成,只用於幫助你做資料操作 content_object = GenericForeignKey('content_type', 'object_id')
CORS
即:跨域資源共享(CORS,Cross-Origin Resource Sharing),其本質是設定響應頭,使得瀏覽器允許跨域請求
複雜請求在傳送真正的請求前,會先發送一個OPTIONS請求,第三方服務端先”預檢“一下,”預檢“通過才會傳送正式資料。
- “預檢”請求時,允許請求方式則需伺服器設定響應頭:Access-Control-Request-Method
- “預檢”請求時,允許請求頭則需伺服器設定響應頭:Access-Control-Request-Headers
- “預檢”快取時間,伺服器設定響應頭:Access-Control-Max-Age
帶請求頭的複雜請求
客戶端cors.html
<body> <h3>CORS示例</h3> <button type="button" onclick="getData()" >獲取第三方資料</button> <script src="/static/jquery-3.2.1.js"></script> <script> function getData() { $.ajax({ url:'http://127.0.0.1:8000/cors_data/', type:'GET', // 請求方式:HEAD、GET、POST為簡單請求 headers:{'name':'joe1991'}, //有請求頭的複雜請求 success:function (arg) { var $tag = $('<h6>'); $tag.text(arg); $('h3').append($tag); } }) } </script> </body>
第三方服務端views.py
def cors_data(request):
if request.method == 'OPTIONS':
# 預檢
obj = HttpResponse()
obj['Access-Control-Allow-Origin'] = " http://127.0.0.1:8001"
obj['Access-Control-Allow-Headers'] = 'name' #處理方式不同
# obj['Access-Control-Allow-Methods'] = "PUT"
return obj
else :
obj = HttpResponse('第三方資料')
obj['Access-Control-Allow-Origin'] = " http://127.0.0.1:8001"
return obj
區別
JSONP:主要修改在前端部分,後端需做約束脩改,發jsonp請求
JSONP:只能發GET請求
CORS:前端的程式碼不用修改,服務端的程式碼需要修改
CORS:可以發任意請求,簡單請求與複雜請求處理方式不同
Git
工作區:當前開發程式所在目錄稱為工作區,即:工作開發都是在該目錄,該區域的檔案會有狀態的變化且狀態由git自動檢測,如果程式中檔案做任何操作(增、刪、改),檔案狀態均會被檢測到,可以使用 【git status】命令檢視
版本庫:工作區檢測到有檔案發生變化,那麼意味著較上一個版本之後對程式進行了修改,修改完成之後,可以當做下一版本進行提交,那麼就是執行 【git add .】 將所有檔案提交到暫存區,然後再執行【git commit -m '又一個版本'】提交到版本庫的分支即可,之後可以使用【git log】命令檢視版本記錄
某個資料夾中的內容進行版本管理:
進入資料夾,右鍵git bash
git init 初始化,當前所在的資料夾可以被管理且以後版本相關的資料都會儲存到.git檔案中
git status 檢視當前資料夾以及子目錄中檔案是否發生變化:內容修改/新增檔案/刪除,已經變化的檔案會變成紅色,已經add的檔案會變成綠色
git add . 給發生變化的檔案(貼上一個標籤)或 將發生變化的檔案放到某個地方,只寫一個句點符就代表把git status中紅色的檔案全部打上標籤
git commit -m '新增使用者登入認證功能以及xxx功能' 將“綠色”檔案新增到版本中
git log 檢視所有版本提交記錄,可以獲取版本號
git reset --hard 版本號 將最新的版本回退到更早的版本
git reflog 回退到之前版本後悔了,再更新到最新或者最新之前的版本
git reset --hard 版本 回退
BUG修復
1.stash
stash用於將工作區發生變化的所有檔案獲取臨時儲存在“某個地方”,將工作區還原當前版本未操作前的狀態;stash還可以將臨時儲存在“某個地方”的檔案再次拿回到工作區。
git stash 將當前工作區所有修改過的內容儲存到“某個地方”,將工作區還原到當前版本未修改過的狀態
git stash list 檢視“某個地方”儲存的所有記錄
git stash clear 清空“某個地方”
git stash pop 將第一個記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash apply 編號, 將指定編號記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash drop 編號,刪除指定編號的記錄
2.branch
branch稱為分支,預設僅有一個名為master的分支。一般開發新功能流程為:開發新功能時會在分支dev上進行,開發完畢後再合併到master分支。
git branch 分支名稱 建立分支
git checkout 分支名稱 切換分支
git branch -m 分支名稱 建立並切換到指定分支
git branch 檢視所有分支
git branch -d 分支名稱 刪除分支
git merge 分支名稱 將指定分支合併到當前分支
遠端管理
git pull origin maste
git push origin maste
協同開發
先 git pull origin master 然後 git push origin master
先 git fetch origin master 然後 git merge origin/master 再 git push origin master
先 git fetch origin master 然後 git rebase origin/master 再 git push origin master
相關推薦
ContentType&CORS&Git
ContentType django內建的ContentType元件就是幫我們做連表操作 如果一個表與其他表有多個外來鍵關係,我們可以通過ContentType來解決這種關聯 from django.db import models from django.contrib.contenttypes.model
跨域,CORS和contentType表
objects 文件 mod 實現 lte resp png quest 發送 一 . 跨域 域名,協議,端口有一個不一樣都是跨域,簡單的解釋一下,,你從你從端口號為8000去請求8001的數據就是跨域.如果想解決跨域問題,需要瀏覽器同時支持,我們這裏用CORS(Cr
git使用總結
ash war with 搭建 git服務器 quest 配置文件 username 下使用 一、安裝 $ sudo apt-get install git ubuntuxia windows下使用msysgit 二、使用 1.配置 $git config -
常用 Git 命令清單
stage 遠程倉庫 spa reset 一行 發生 per pan comm 下面是我整理的常用 Git 命令清單。幾個專用名詞的譯名如下。 Workspace:工作區 Index / Stage:暫存區 Repository:倉庫區(或本地倉庫
跨域資源共享CORS詳解
附加 accep 不發送 地址 code 克服 通信 數據 ror 簡介 CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。 它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX
git本地分支管理
master diff mas 命名 創建 out git diff 創建分支 合並 查看分支:git branch創建分支:git branch dev重命名分支:git branch -m dev dev1刪除分支:git branch -d dev切換分支:git c
當git上只做文件大小寫重命名的修改時,如何躲坑
function http ner ips %20 error: ace mbed lips 一、 提交時 假設修改ABC.java為Abc.java。 1.1 如果使用git命令進行僅涉及大小寫的重命名 1.1.1 設置git庫為大小寫敏感(不建議) $
Git 問題總結
gin user 沖突 windows 技術分享 tac 意思 ted wid 打開eclipse中的windows-->Preferences-->Team-->Git-->Configuration-->User Settings.然後點A
git安裝 編譯安裝
git一、安裝依賴 yum update -y #可以不做 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker wget https://github.c
基於GitLab與Git Extensions搭建版本控制工具
基本 cmd img html nat 需求 無法 spa hang 1.背景 大家知道GitHub是現在非常流行的代碼托管工具,但是如果有些項目不想開源的話,則需要付費,因此萌生了自己搭建一個Git的版本控制工具,供內網使用。GitLab則是個好的選擇,但是GitL
git-tag
png branch light ranch 記錄 strong ges -- git 首先為什麽學習git的tag?第一、web前端更新太快了,而有些開發不是那麽急於追新,github上為保留過去的版本,所以用上了tag,當然,你會說用branch?我得搞清一個開源項目是
git clone遠程branch和tag
oca lar -- rac master 文件目錄 targe 錯誤 先後 接著上一個筆記講,我們想從remote repository上獲取某個branch的某個tag。這句可以理解為,以angular,我們想獲得angular的angular1的v.0.1.1的版本。
Git介紹,安裝,Git+Git flow使用
span mon 緊急 sna initial setup cto 快速 oca 特點: 1.可以快速的切換項目分支. 2.回滾某個分支的版本. 3.每次切換分支不用修改配置文件 (因項目而定義) 4.不用 新建/切換 虛擬目錄/域名.因為都是在同一個目
解決Problem with writing the data, class java.util.ArrayList, ContentType: application/xml
writing 數據庫 今天,在使用cxf讀取內網數據庫的數據時,報以下一個錯誤Problem with writing the data, class java.util.ArrayList, ContentType: application/xml以上錯誤提示我們,在寫入數據時有錯誤,最後經檢查
git體驗
cat details ppi pin perm object ocr 技術 1.0 (1)git初始化配置#配置用戶名git config --global user.name "azcode"#配置郵箱git config --global user.email
Windows下快速安裝Xgboost(無需Git或者VS)
nor port 最終 比賽 http 無需 windows git 到你 xgboost的全稱是eXtreme Gradient Boosting,現在已經風靡Kaggle、天池、DataCastle、Kesci等國內外數據競賽平臺,是比賽奪冠的必備大殺器!如果
Git系列三之在線GitHub使用方法
git repo div ssh bsp repos initial finger com root 代碼托管地址:https://github.com 一、認證方式 1、https方式:不需要認證 [[email protected]/* */
git 提交新項目,並修改用戶名以及提交郵箱
github php 本地有一個項目myweb,裏面有.git目錄。線上新建了git倉庫,gitweb。現在要把myweb提交到線上。直接在myweb目錄下,以免沖突,提交不了。所以我用了copy的方法。1.先把項目myweb的 .git目錄,刪除。 2.在/data目錄下,git clone線上的倉庫
git 命令
安裝 裏來 checkout 行合並 del 等等 table date -- 安裝git後我們需要配置一下,告訴git我們的基本信息等等..一般在用戶範圍內去配置 git ,也就是在 global 範圍。 global 全局設置 $ git config
git clone 某個分支或者所有分支
tps 分支 git clone http dev bsp branch ade .net clone 某個分支: git clone -b dev5 https://git.coding.net/aiyongbao/tradepc.git trade