全棧之路——android搭配Django

找了好多文章才把這套搞定壤蚜,真的佩服國人的文章即寡,要不要更新維護(hù)下啊,你代碼給一半袜刷,我自己腦補(bǔ)啊聪富。

對了,這里面有的軟件版本號對不上著蟹,不過不影響墩蔓,有影響的我會提。

總體上草则,

server選擇Django钢拧,數(shù)據(jù)庫是Mysql,

android就是android炕横,不過引入了Retrofit2.0用來進(jìn)行通信

通信數(shù)據(jù)格式走json

一 Django搭建

這個(gè)沒啥說的源内,網(wǎng)上一大堆教程,注意我用的

1.1 python安裝

Python 3.6.1份殿,沒裝的膜钓,就裝這個(gè)吧,選擇自己的操作系統(tǒng)對應(yīng)的版本卿嘲,裝了2.7的自己改環(huán)境變量哦颂斜。

3.6.3下載地址

1.2 Django安裝

Django安裝說明

我推薦用

pip install Django==1.11.7

當(dāng)然可以測試下安裝是否成功


版本號1.11.6

1.3 創(chuàng)建Django后臺

下面要開車了,跟上節(jié)奏啊拾枣。

1沃疮、隨便找個(gè)目錄然后執(zhí)行

django-admin.py startproject Exam

Exam是項(xiàng)目名,你愿意叫HelloWorld也行啊

成功后會生成一個(gè)Exam的文件夾

python manage.py startapp Server

Server是APP名梅肤,其實(shí)是一個(gè)實(shí)際應(yīng)用的意思司蔬,名字跟你的業(yè)務(wù)有關(guān),隨便你叫啥

2姨蝴、修改配置

修改settings.py里面的INSTALLED_APPS添加'Server',

注意Server是上一步的APP名

3俊啼、創(chuàng)建數(shù)據(jù)庫和表

自己裝個(gè)MySQL,然后建個(gè)database左医,我取名叫exam

記得裝5.6哦

4授帕、Django生成表

在Exam\Server\models.py里加入你要的表名

class User(models.Model):

? ? name? = models.CharField(max_length=200)

? ? age? ? = models.IntegerField(default=0)

? ? phone? = models.CharField(max_length=20)

? ? def __unicode__(self):

? ? ? ? return self.name

5.修改settings.py里面的DATABASES

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',? # 或者使用 mysql.connector.django

'NAME': 'exam',

'USER': 'root',

'PASSWORD': '12345',

'HOST':'localhost',

'PORT':'3306',

}

}

6、自動生成表浮梢,需要兩步

python manage.py makemigrations

python manage.py migrate

之后每次修改跛十,只需要執(zhí)行python manage.py migrate這一句就好

7、urls.py添加一條url映射

?url(r'^regist/', servermanage.regist),

8秕硝、做一些Django的坑處理

修改settings.py里面

ALLOWED_HOSTS = ['*']

這句是讓別的ip可以連接到server上

修改 MIDDLEWARE

注釋掉這一句#'django.middleware.csrf.CsrfViewMiddleware',

9芥映、啟動server

python manage.py runserver 0.0.0.0:9527

0.0.0.0的意思是任一一個(gè)ip都可以訪問,9527是端口號,別跟其他應(yīng)用的端口號重復(fù)就行

二屏轰、Android引入Retrofit2.0

2.1Android Gradle添加retrofit

在app的build.gradle的dependencies添加

compile'com.squareup.retrofit2:converter-gson:2.0.2'

compile'com.squareup.retrofit2:retrofit:2.3.0'

因?yàn)楹竺嬉玫絡(luò)son解析數(shù)據(jù)颊郎,所以在加一個(gè)

compile'com.google.code.gson:gson:2.8.2'

2.2Retrofit2.0使用

UserEntity userEntity =new UserEntity(15,etName.getText().toString(),etPhone.getText().toString());生成一個(gè)用戶

Gson gson =new Gson();調(diào)用Gson

String sjson = gson.toJson(userEntity);把剛才的用戶信息轉(zhuǎn)成字符串

Retrofit retrofit=new Retrofit.Builder()

? ? ? ? ? ? ? ? ? ? ? ? ? ?.baseUrl(Config.baseurl)

? ? ? ? ? ? ? ? ? ? ? ? ? ?.addConverterFactory(GsonConverterFactory.create())

? ? ? ? ? ? ? ? ? ? ? ? ? ?.build();

創(chuàng)建一個(gè)負(fù)責(zé)通信的對象,用于向baseurl霎苗,這個(gè)是你server的ip和端口姆吭,也就是9527,發(fā)送和接收報(bào)文

RetrofitInteface.regist rigistRoute = retrofit.create(RetrofitInteface.regist.class);

創(chuàng)建接口唁盏,里面是Post等方法内狸,以及回調(diào)的接口

RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"),sjson);

生成報(bào)文

Call call = rigistRoute.postRoute(body);

發(fā)送報(bào)文

call.enqueue(newCallback() {

? ? @Override

? ? public voidonResponse(Call call, Response response) {

? ? ? ? Toast.makeText(MainActivity.this, response.body().getContent(), Toast.LENGTH_LONG).show();

? ? }

? ? @Override

? ? public voidonFailure(Call call, Throwable t) {

? ? }

});

這段是結(jié)果的回調(diào),其中response.body()便是你在回調(diào)接口中使用的類

public class RetrofitInteface {

? ? public interfaceregist {

? ? ? ? @Headers({"Content-Type: application/json","Accept: application/json"})//需要添加頭

? ? ? ? @POST("regist/")

? ? ? ? Call<Result> postRoute(@BodyRequestBody route);//傳入的參數(shù)為RequestBody

? ? }

}

于是就可以愉快的與server通信了

至于代碼厘擂,你們可以聯(lián)系我昆淡,就不公開了。畢竟不是開源項(xiàng)目刽严“毫椋或者周末我寫個(gè)demo,看心情了舞萄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末眨补,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子倒脓,更是在濱河造成了極大的恐慌撑螺,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崎弃,死亡現(xiàn)場離奇詭異甘晤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)饲做,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門线婚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人艇炎,你說我怎么就攤上這事酌伊√谖眩” “怎么了缀踪?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長虹脯。 經(jīng)常有香客問我驴娃,道長,這世上最難降的妖魔是什么循集? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任唇敞,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疆柔。我一直安慰自己咒精,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布旷档。 她就那樣靜靜地躺著模叙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鞋屈。 梳的紋絲不亂的頭發(fā)上范咨,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音厂庇,去河邊找鬼渠啊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛权旷,可吹牛的內(nèi)容都是我干的替蛉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼拄氯,長吁一口氣:“原來是場噩夢啊……” “哼灭返!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起坤邪,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤熙含,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后艇纺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怎静,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年黔衡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚓聘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盟劫,死狀恐怖夜牡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侣签,我是刑警寧澤塘装,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站影所,受9級特大地震影響蹦肴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜猴娩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一阴幌、第九天 我趴在偏房一處隱蔽的房頂上張望勺阐。 院中可真熱鬧,春花似錦矛双、人聲如沸渊抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腰吟。三九已至,卻和暖如春徙瓶,著一層夾襖步出監(jiān)牢的瞬間毛雇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工侦镇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灵疮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓壳繁,卻偏偏與公主長得像震捣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子闹炉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 已經(jīng)同步到gitbook蒿赢,想閱讀的請轉(zhuǎn)到gitbook: Django 1.10 中文文檔 This tutori...
    leyu閱讀 2,704評論 3 13
  • 此段內(nèi)容簡要來自自強(qiáng)學(xué)堂的教程詳情請查詢自強(qiáng)學(xué)堂 一、 后臺的運(yùn)作流程 接收request請求 處理數(shù)據(jù) 獲取請求...
    coder_ben閱讀 5,246評論 6 56
  • 經(jīng)過對django的初步學(xué)習(xí)渣触,我們已經(jīng)對后臺的基本流程以及django的運(yùn)作有了一定的了解羡棵,但是這還不足夠,dja...
    coder_ben閱讀 3,835評論 8 34
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,502評論 6 427
  • 大學(xué)畢業(yè)那段時(shí)間嗅钻,日子過得很煎熬皂冰。 一方面是因?yàn)榧磳⒚媾R畢業(yè)即失業(yè)的危機(jī),一方面是畢業(yè)有關(guān)事項(xiàng)實(shí)在繁瑣养篓。人心惶惶秃流。...
    羋墨晴閱讀 404評論 1 1