色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

想要給自己課題組做個(gè)網(wǎng)頁(yè)

想要給自己課題組做個(gè)網(wǎng)頁(yè)?

最近因?yàn)橐鲆粋€(gè)小型的網(wǎng)站,需求很簡(jiǎn)單有點(diǎn)像公司內(nèi)部的管理網(wǎng)站,和室友一起倒騰,發(fā)現(xiàn)了一些坑。我自己之前沒有接觸過(guò)python 但是發(fā)現(xiàn)真的非常好上手。

我們沒人會(huì)前端,所以最怕修改網(wǎng)頁(yè),一開始選擇了Flask框架,我搞了半天遇到各種坑(還要修改css 麻煩),中間件也不好用,勸大家用django,資料多,非常好用。

那么開始說(shuō)重點(diǎn),需要做的哪些東西。

http://python.usyiyi.cn/ 是主要的資料,里面是中文的資料建議一點(diǎn)點(diǎn)看下去。

1-項(xiàng)目環(huán)境搭建。

1.1第三方庫(kù)準(zhǔn)備

開發(fā)環(huán)境是mac os 和ubantu 推薦大家下載一個(gè)第三方的軟件叫 "Anaconda" ,安裝非常簡(jiǎn)單,直接運(yùn)行腳本就好。

安裝完了,可以到命令行運(yùn)行 pip list。可以看到已經(jīng)安裝的python第三方庫(kù) 。

此時(shí)我們是沒有django的庫(kù)的。

1.2IDE的安裝

IDE 使用eclipse,講一個(gè)工具Pydev,安裝自行百度,點(diǎn)點(diǎn)就行。

然后 到Eclipse了 New->Project->Pydev->Pydev Django Project,一路next 。發(fā)現(xiàn)eclipse 找不到Django 環(huán)境,回來(lái)點(diǎn)擊 click here to configure an interpreter 然后把python interpreter 中的名為python的刪掉,那是系統(tǒng)默認(rèn)的,改成anaconda目錄 下 bin/里面的python。默認(rèn)是2.7.11吧。忘記安裝目錄?一個(gè)命令 sudo find / -name anacon* 搞定~。找到以后加進(jìn)去,到了圖一這一步就結(jié)束。

(圖1)

2-數(shù)據(jù)庫(kù)配置和使用

2.1數(shù)據(jù)庫(kù)連接文件配置

我選了mysql,當(dāng)然在這之前mysql的帳號(hào)密碼應(yīng)該自己確定了吧。mysql配置應(yīng)該簡(jiǎn)單。但是如果要支持遠(yuǎn)程訪問(wèn),比如你把數(shù)據(jù)庫(kù)放到云上,別人機(jī)器上,畢竟開發(fā)不是一個(gè)人的事,我自己遇到的坑是"關(guān)于 mysql 配置文件中的 bind-address",自行百度,解決方案是刪除就好。(推薦幾個(gè)mysql 連接的桌面軟件,用Navicat ,或者mysql workbench 都是不錯(cuò)的)。(后來(lái)發(fā)現(xiàn)這里輸入密碼和帳號(hào)沒什么用還是要去修改在與項(xiàng)目同名的app里面的setting)。現(xiàn)在在mysql自己創(chuàng)建一個(gè)database 取名隨便。我叫test,其他字段應(yīng)該不用解釋了如圖2。

(圖2)

2.2創(chuàng)建APP(模塊)

然后我們?cè)诠こ汤锔夸浻覔?>Django->Create App->輸入名字就好。因?yàn)榫W(wǎng)頁(yè)主要是MVC模式,創(chuàng)兩個(gè)吧。一個(gè)叫db 專用于管理數(shù)據(jù)庫(kù)(models 層) 第二個(gè)專用于后臺(tái)邏輯。名字隨便取因?yàn)榭赡芤獙?duì)應(yīng)多個(gè)模塊。django里面增加一個(gè)app 就需要在與項(xiàng)目同名的那個(gè)app的setting中Installed_app里面加入app名(如圖4)。我們加入以后目錄結(jié)構(gòu)(如圖3.)

(圖3)

(圖4)

2.3用django模型層建表

數(shù)據(jù)庫(kù)正式開發(fā),數(shù)據(jù)庫(kù)創(chuàng)建,在db的models.py中 對(duì)應(yīng)數(shù)據(jù)庫(kù)中每個(gè)表寫class,就是定義好字段,因?yàn)镈jango的目標(biāo)是要程序員完全脫離數(shù)據(jù)庫(kù)的操作。那么我們先不建表,cd 到你的工程目錄去,用命令行 用打入 manage.py migrate 命令。效果如圖5。

(圖5)

如果你的配置是沒錯(cuò)的,此時(shí)django 已經(jīng)在你的數(shù)據(jù)庫(kù)中建了很多表,都是django自帶的,我也沒有用起來(lái),唯一用的是django自帶的數(shù)據(jù)庫(kù)管理界面,類似于Navicat,還支持搜索功能,自己去文檔里 http://python.usyiyi.cn/django_182/intro/tutorial02.html 學(xué)吧。

然后在db的models里寫一個(gè)表的代碼。然后效果如圖6 還是用了Manage 腳本。

from __future__ import unicode_literalsfrom django.db import models# Create your db here.class Message(models.Model): user_id = models.BigIntegerField(blank=True, null=True)

(圖6)

到這里表都結(jié)束了,實(shí)際開發(fā)中,我數(shù)據(jù)庫(kù)都是先建好的,那我全部都要寫每個(gè)類是不是很麻煩,有沒有偷懶的辦法呢?

答案是用./manage.py inspectdb

用了就知道,他會(huì)反向生成表的代碼, 然后直接復(fù)制進(jìn)models里面就好了。

3-url 解析

3.1url匹配處理函數(shù)

在Django中 一般url解析分為兩層。

第一層負(fù)責(zé)解析APP的名,像我在test 里urls.py里寫的(如圖7)。第一個(gè)參數(shù)表示響應(yīng)的url,第二個(gè)參數(shù)表示處理的模塊。

(圖7)

第二層是解析到具體的模塊中的某個(gè)函數(shù)來(lái)響應(yīng)對(duì)應(yīng)的url。

比如在view app 中的urls.py(需要自己創(chuàng)建) 寫的(圖8)url(函數(shù)中第一個(gè)參數(shù)為匹配路徑,后一個(gè)是對(duì)應(yīng)函數(shù)名)里面的home對(duì)應(yīng)view app中的views.py 里的函數(shù)home

(圖9)

3.2靜態(tài)網(wǎng)頁(yè)配置

其實(shí)到這個(gè)時(shí)候已經(jīng)可以實(shí)現(xiàn)響應(yīng)了。(到這里還要解決一個(gè)問(wèn)題 'Index/home.html')在哪里呢?我們此時(shí)創(chuàng)一個(gè)文件夾叫templates html都應(yīng)該放在這里,Index 是一個(gè)模塊的名字。你可以在templates下面建很多個(gè)文件夾,對(duì)應(yīng)很多的APP模塊。(html就不屬于本文范疇了)此時(shí)目錄結(jié)構(gòu)為

(圖10)

搞定了后別忘記在test的setting 里加上一句代碼

(圖11)

"就是DIRS"里面.想想也是,不然 Django怎么知道我們的html放在這里呢。

4-邏輯層(也就是最后一步了,怎么樣把數(shù)據(jù)庫(kù)的東西查出來(lái),放到html中。)

4.1數(shù)據(jù)庫(kù)中的數(shù)據(jù)

往表里插兩條數(shù)據(jù)

(圖12)

4.2動(dòng)態(tài)顯示數(shù)據(jù)

看下代碼:html部分

(圖13)

里面的{%%}是django 自帶標(biāo)簽的自己看文檔學(xué)一下就會(huì)。

(圖14)

里面的Message.objects.all() 表示從Message表中取出所有數(shù)據(jù)。還有什么復(fù)雜查詢自己看文檔,一般都是filter exclude,django 還支持sql語(yǔ)句直接寫,函數(shù)名叫raw().

context就是返回給頁(yè)面的一個(gè)對(duì)象里面放了很多值。在python里叫字典(dict)

4.3啟動(dòng)服務(wù)器

最后我們用命令行來(lái)到我們的目錄,敲./manage.py runserver (要支持所有端口 和外網(wǎng)訪問(wèn)加0.0.0.0)。然后出現(xiàn)

(圖15)

4.4查看網(wǎng)頁(yè)

再到瀏覽器敲127.0.0.1:8000 django默認(rèn)端口 (圖16)

4.5實(shí)際開發(fā)中問(wèn)題

結(jié)果出來(lái)了。遇到具體問(wèn)題就是查一些文檔和stackoverflow。發(fā)現(xiàn)一個(gè)時(shí)區(qū)問(wèn)題,建議和我改成一樣。把test里面setting中的時(shí)區(qū)部分改成這樣。否則你會(huì)有八個(gè)小時(shí)的時(shí)差,

(圖17)

。還有啥問(wèn)題可以和我討論的可以留言。小弟也是剛做完這個(gè)項(xiàng)目從零開始。碼字不易~小問(wèn)題就不在這里說(shuō)了。

界面日志界面

管理界面

評(píng)論界面

使用的技術(shù)

python、JavaScript、CSS、htmlMySQL 數(shù)據(jù)庫(kù)jinja2 模板引擎Vue.js 界面框架Nginx Web服務(wù)器gunicorn WSGI服務(wù)器Supervisor 監(jiān)控服務(wù)進(jìn)程工具Fabric 自動(dòng)部署工具

學(xué)習(xí)過(guò)程

剛開始跟著作者的教程編寫這樣一個(gè)博客網(wǎng)站的時(shí)候感覺很困難,因?yàn)樽约簩?duì)web上的很多概念不了解,對(duì)web服務(wù)器是怎么運(yùn)行也不清楚,所以不知道作者為什么要這么寫代碼。后來(lái)去學(xué)習(xí)了Django,知道了什么是ORM,什么是模板等一些概念后,并且能夠使用Django搭建一個(gè)網(wǎng)站,再跟著作者學(xué)習(xí)就輕松了一些,希望我的學(xué)習(xí)過(guò)程對(duì)你有啟發(fā)。當(dāng)然,如果你只想快速的搭建一個(gè)網(wǎng)站,可以使用Django、Flask等免費(fèi)開源的網(wǎng)站框架,而不用自己一步一步的去實(shí)現(xiàn)它。