国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Django練習項目之搭建博客

2019-11-14 17:06:22
字體:
來源:轉載
供稿:網友

  背景:自從今年回家過年后,來到公司給我轉了試用,我的學習效率感覺不如從前,而且剛步入社會我總是想要怎么想明白想清楚一些事,這通常會花掉,消耗我大量的精力,因為我想把我的生活管理規劃好了,而在it技術學習上就沒有了年前那股猛勁,從3月開始學習Django,到現在已經5個月了,期間有差不多1個月忙畢業論文,再加上回了趟家(打亂了學習節奏),Django的學習路程就顯的更加緩慢了,值得一提的事,我在Python學習上更深入了一層,之前學會的也就是Python基本語法,然后不斷的用if ,for ...寫了幾個腳本,而這次,我通過學習  廖雪峰 的Python 教程,對IO,進程線程,Json,正則,md5,GUI,網絡編程,郵件收發,訪問數據庫,等都有了大致了解,學習的時候很是認真的,但是練習是很少很少的,沒有需求和好的想法,很難讓我著手去寫些什么..

  深入了解學習Python之后,首先發現了Python的強大,也知道了以后,未來,或者是不久將來馬上自己能用Python做些怎么樣的有趣的東西,甚至還能幫我賺點外快,然后我本著linux愛好者的心,開始了對  Git  的學習,同樣也是看的 廖雪峰 的教程,Git的學習并不是很難,練習幾下也就會了,當然我說的是基本的版本控制,然后我馬上轉入了,我一直想進入的  Github  大門,我覺得作為一個程序開放者,尤其是學習了開源的,沒有自己的Github 都不算入門,Github的強大太多太多,這里就不一一說了,已經跑題了!!  學習完github給電腦配置好ssh,又回到了Django學習中,于是心血來潮,有了這篇我認為很重要的博客,作為這一大段時間學習成果的一個簡單記錄.

   Github官網https://github.com/  

   我的github https://github.com/fankcoder

   

 

對自己無語了,自己的吐槽技能真是+++

回來正題拉!!,正題是啥來著?!   Django練習項目之搭建博客

一,環境

  1.Python

  2.Django

 

二,安裝

  1.你的電腦沒有Python?  不用多說了坑人的Windows,送你友情連接 www.baidu.com

  2.Django安裝,推薦先裝個pip吧,easyinstall也可以,然后終端下輸入:

      pip install Django

   強烈推薦用新的Django版本!!1.8.1現在夠新么?找的教程都是1.6.x的夠新新新了!!!

   pip install Django==1.8.1

 

  測試一下安裝成功否

  終端下:

    python

    import django

    django.VERSION

      (1, 8, 1, 'final', 0) 成功~!

 

三,開始

1.創建博客項目

找個干凈的文件夾,終端下:

django-admin.py startPRoject nameblog

這里nameblog是示例,自己記得換哦

打開文件夾,或者cd nameblog/  輸入ls

發現項目創建好了~

 

2.創建博客app

終端下:cd nameblog/  剛才已經cd進去的同學這步省了

然后輸入:

python manage.py startapp blog

打開文件夾瞅一眼,發現多了個blog文件夾,

這時候blog項目app就創建好了~

 

2.簡單設置一下

打開nameblog/nameblog/settings.py

進行如下設置,也就是加上一條blog:

INSTALLED_APPS = (    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'blog',)

順便換下Django默認語言把,你要是英文大神,請別鳥我,第二句是換時區,不換你就自個倒時差吧,好像永遠差8小時~

LANGUAGE_CODE = 'zh_CN'TIME_ZONE = 'Asia/Shanghai'

 

四,測試Django運行成功否

終端下輸入,

注意現在的終端目錄還應該是nameblog/下,而不是nameblog/nameblog下,請參考有manage.py的這層目錄

好的,終端下輸入:
python manage.py runserver

打開瀏覽器,

地址:127.0.0.1:8000或者localhost:8000

看到淡藍色,提示,Django工作了~

說明項目搭建成功~

如果 python manage.py runserver跑不起來

可能8000端口被占用了,輸入:

python manage.py runserver 8001

 

五,博客數據庫

首頁要知道

Django是一個基于MVC構造的框架,模型M,視圖V和控制器C。
但是在Django中,控制器接受用戶輸入的部分由框架自行處理,
所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。
它們各自的職責如下:
 
層次
職責
模型(Model),即數據存取層
處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以及數據之間的關系等。
模板(Template),即表現層
處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。
視圖(View),即業務邏輯層
存取模型及調取恰當模板的相關邏輯。模型與模板之間的橋梁。

 

了解了Django先進的框架結構,就來一層一層的進行操作,

 

這里注意一下,我們并沒有配置數據庫,Django高級一點的版本會默認配置好,

數據庫默認是sqlite3,如果你的博客,網站有很多人訪問,sqlite3也夠用了,

如果非常多的人使用建議換為,MySQL,

配置是在settings.py

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.sqlite3',        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),    }

開始配置模型,首先打開模型文件,nameblog/blog/models.py

models.py是博客數據庫的,每個類都是數據庫中的一張表,

配置如下:

class Tag(models.Model):    tag_name = models.CharField(max_length=20)    create_time = models.DateTimeField(auto_now_add=True)    def __unicode__(self):        return self.tag_nameclass Classification(models.Model):    name = models.CharField(max_length=20)    def __unicode__(self):        return self.nameclass Author(models.Model):    name = models.CharField(max_length=30)    email = models.EmailField(blank=True)    website = models.URLField(blank=True)    def __unicode__(self):        return u'%s' % (self.name)class Article(models.Model):    caption = models.CharField(max_length=30)    subcaption = models.CharField(max_length=50,blank=True)    publish_time = models.DateTimeField(auto_now_add=True)    update_time = models.DateTimeField(auto_now = True)    author = models.ForeignKey(Author)    classification = models.ForeignKey(Classification)    tags = models.ManyToManyField(Tag, blank=True)    content = models.TextField()

我們要做博客app,就要寫文章,文章需要的一些基本信息,這里都涵蓋了,

標簽,分類,作者信息,發布時間等,也可以加入自己想要的表,

保存退出,

同步數據庫,在終端輸入下:

python manage.py syncdb # 進入 manage.py 所在的那個文件夾下輸入這個命令

 
注意:Django 1.7 及以上的版本需要用以下命令
python manage.py makemigrations
python manage.py migrate

第一次 同步數據庫會讓用戶輸入管理員帳號密碼

 

六,配置視圖

不多說了,打開nameblog/blog/views.py

from django.shortcuts import renderfrom blog.models import Article, Tag, Classificationfrom django.template import RequestContextdef blog_list(request):    blogs = Article.objects.all().order_by('-publish_time')    return render(request,'index.html',{"blogs":blogs})

這里看到視圖函數返回index.html,我們不是還沒有創建html首頁嗎?對的!

 

七,創建模板首頁

模板在app中默認沒有這個文件夾,需要手動創建blog/templates/

*.html文件是要放在blog/templates/下

簡單寫點html歡迎代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>fank</title></head><body><h1>歡迎光臨xx的博客</h1></body></html>

但是這是靜態頁面還用Django搭建起來未必太Low了吧?

加上等下我們會發布的博客文章

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>fank</title></head><body><h1>歡迎光臨xx的博客</h1><div>{% for blog in blogs %}  <div class="blog_body">    <div class="blog_title"><a href="/blog/detail/?id={{ blog.id }}">{{ blog.caption }}</a></div>    <div class="blog_info">      <ul class="blog_info_list">        <li>分類:{{ blog.classification }}</li>        <li>發表時間:{{ blog.publish_time|date:"Y-m-d H:i" }}</li>        <li>標簽:          {% for tag in blog.tags.all %}            {{ tag.tag_name }}          {% endfor %}        </li>      </ul>    </div>    <div class="blog_description">      {{ blog.content }}    </div>  </div>{% endfor %}</div></body></html>

保存退出.

 

八,配置url

直到現在,我們啟動項目

python manage.py runserver

你會發現,開始萌萌噠Django歡迎界面,說好的博客app呢?!

想要訪問到網頁,需要配置Url

打開nameblog/nameblog/urls.py

配置:

urlpatterns = [    url(r'^admin/', include(admin.site.urls)),    url(r'^$','blog.views.blog_list',name='blog_list'),]

這時候,把項目跑起來

python manage.py runserver

你會發現,

歡迎光臨xx的博客

成功了~!

 

九,美化網頁

沒有CSS,js的網頁不是好網頁

創建blog/static/images; blog/static/css; blog/static/js

美化html,自己搞把,或者下載現成的模板,美化大家不一個品,這里就不上我的例子了

注意:靜態文件加載需要設置settings.py

STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR,'collected_static')STATICFILES_DIRS = (    os.path.join(BASE_DIR),    '/home/icgoo/pywork/fankblog/blog/static/',)STATICFILES_FINDERS = (    "django.contrib.staticfiles.finders.FileSystemFinder",    "django.contrib.staticfiles.finders.AppDirectoriesFinder",)

收集靜態文件,終端下:

python manage.py collectstatic

再次打開萌萌噠的首頁,讓人眼前一亮,有沒有?...

 

十,Django后臺

又人開始吐槽了,做了這么久的博客app,到現在一篇文章都木有啊,什么鬼!

Django給我們提供了一個強大的后臺管理,我們通過它來管理文章

打開blog/admin.py,沒有則新建

from django.contrib import adminfrom .models import Article  admin.site.register(Article)

只需要這三行代碼,我們就可以擁有一個強大的后臺!

提示:urls.py中關于 admin的已經默認開啟

 

運行服務器,

python manage.py runserver

訪問 http://localhost:8000/admin/ 輸入設定的帳號和密碼

點擊 Articles,動手輸入 添加幾篇文章,

再訪問首頁

發現文章出現在首頁了~!!

 

十一,代碼托管到Github

確保目錄在nameblog/

$ git init    //初始化

$ touch README

$ git add README   //更新README文件

$ git commit -m 'first commit'//提交更新,并注釋信息“first commit”

$ git remote add origin git@github.com:yourproject/nameblog.git   //連接遠程github項目  

$ git push -u origin master   //將本地項目更新到github項目上去

 

現在查看github上面的blog項目,

是不是發現已經將本地中的README文件更新上來了。

:) 恭喜!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汨罗市| 武义县| 百色市| 新干县| 仁寿县| 陇南市| 穆棱市| 玛纳斯县| 太白县| 江安县| 南开区| 南乐县| 建平县| 龙陵县| 尖扎县| 玉田县| 江都市| 年辖:市辖区| 永修县| 高安市| 蕉岭县| 同仁县| 南乐县| 大荔县| 象州县| 苍山县| 民丰县| 十堰市| 高陵县| 吉安市| 博客| 康平县| 西乌珠穆沁旗| 根河市| 白朗县| 黔西县| 亳州市| 堆龙德庆县| 沭阳县| 霍州市| 吴江市|