日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

利用Python Django實現簡單博客系統

瀏覽:141日期:2022-06-20 10:19:55
第一節 - 基礎1. 簡單的導覽圖,學會不迷路

利用Python Django實現簡單博客系統

對 Django 的評價:借用李清照的《鷓鴣天 桂花》來表達,

暗淡輕黃體性柔。情疏跡遠只香留。何須淺碧深紅色,自是花中第一流。梅定妒,菊應羞。畫闌開處冠中秋。騷人可煞無情思,何事當年不見收。

Django makes it easier to build better Web apps more quickly and with less code.

容易上手,開發速度快 囊括了網站開發中的用戶管理,內容管理,網站地圖,RSS等常用的插件 安全性強,解決了 SQL 注入,跨站攻擊等問題 應用廣泛2. 基本操作介紹 安裝:pip install Django 創建項目:django-admin startproject mysite 運行項目:python manage.py runserver 創建應用:python manage.py startapp blog3. 命令簡單介紹 django-admin.py :django 的任務管理命令行工具 manage.py :對django-admin 的簡單封裝,同樣可以實現命令行操作(最好對于該文件不要修改,也不要刪除)4. mysite:所建項目的管理功能目錄 setting.py :項目初始化配置,可以針對整個項目進行有關參數的配置,比如數據庫,添加應用等 urls.py :url 的配置表文件,主要是將url映射到應用程序上。可以是某個應用中的urls.py 文件,也可以是某個具體的視圖函數。被稱之為 URLconf,是 Django 一個非常強大的特性。 wsgi.py :web server gateway interface 的縮寫。wsgi.py 定義了我們所創建的項目都是 wsgi 應用。5. blog:我們創建的項目之一 admin.py :自定義 Django 管理工具,比如設置在管理界面能夠管理的項目,或者重新定義與系統管理有關的類對象,向管理功能增加新的內容。 apps.py : 對應用的配置,比如為管理功能提供一個適合的應用名稱 migrations:存儲應用數據的表結構的指令,可以修改和創建數據庫,從而子 models.py 模型類和數據庫表之間遷移 models.py : 應用的數據模型 test.py : 編寫測試文檔 views.py : 用戶保存各種請求的函數或者類。如果編寫的是函數,則稱之為基于函數的視圖,如果編寫的是類,則稱之為基于類的視圖。6. db.sqlite3 : 默認的數據庫7. 網站配置:mysite/setting.py DEBUG:開發的時候設置為 True。可以顯示具體的報錯信息。 ALLOWED_HOSTS:在 DEBUG 為 True 的時候,值可以為空。在部署到生產環境的時候,需要把主域名填寫到這里,才能通過域名訪問到本網站 INSTALLED_APPS: 所有的應用只有寫到這里才會生效。 DATABASES: 配置數據庫。默認為 sqlite LANGUAGE_CODE: 設置姓名的語言。漢語設置為 ‘zh-hans’ TIME_ZONE: 設置時區,通常東八。 設置為:‘Aisa/Shanghai第二節 - 博客開發

默認已經創建好的 django 的項目和應用,并將應用注冊到項目中

1. 編寫博客的數據模型類

設計數據庫和表結構是做網站的基礎。

利用Python Django實現簡單博客系統

在 ./blog/model.py 中編寫如下類

from django.db import modelsfrom django.contrib.auth.models import User# Create your models here.from django.utils import timezoneclass BlogArticles(models.Model): title = models.CharField(max_length=300) author = models.ForeignKey(User, related_name=’blog_posts’, null=True, on_delete=models.SET_NULL) body = models.TextField() publish = models.DateTimeField(default=timezone.now) class Meta:ordering = (’-publish’, ) def __str__(self):return self.title

創建model 參考參數:

一、字段1、models.AutoField自增列= int(11)如果沒有的話,默認會生成一個名稱為 id 的列,如果要顯示的自定義一個自增列,必須將給列設置為主鍵 primary_key=True。2、models.CharField字符串字段必須 max_length 參數3、models.BooleanField布爾類型=tinyint(1)不能為空,Blank=True4、models.ComaSeparatedIntegerField用逗號分割的數字=varchar繼承CharField,所以必須 max_lenght 參數5、models.DateField日期類型 date對于參數,auto_now =True則每次更新都會更新這個時間;auto_now_add 則只是第一次創建添加,之后的更新不再改變。6、models.DateTimeField日期類型 datetime同DateField的參數7、models.Decimal十進制小數類型= decimal必須指定整數位max_digits和小數位decimal_places8、models.EmailField字符串類型(正則表達式郵箱)=varchar對字符串進行正則表達式9、models.FloatField浮點類型= double10、models.IntegerField整形11、models.BigIntegerField長整形integer_field_ranges ={’SmallIntegerField’:(-32768,32767),’IntegerField’:(-2147483648,2147483647),’BigIntegerField’:(-9223372036854775808,9223372036854775807),’PositiveSmallIntegerField’:(0,32767),’PositiveIntegerField’:(0,2147483647),}12、models.IPAddressField字符串類型(ip4正則表達式)13、models.GenericIPAddressField字符串類型(ip4和ip6是可選的)參數protocol可以是:both、ipv4、ipv6驗證時,會根據設置報錯14、models.NullBooleanField允許為空的布爾類型15、models.PositiveIntegerFiel正Integer16、models.PositiveSmallIntegerField正smallInteger17、models.SlugField減號、下劃線、字母、數字18、models.SmallIntegerField數字數據庫中的字段有:tinyint、smallint、int、bigint19、models.TextField字符串=longtext20、models.TimeField時間 HH:MM[:ss[.uuuuuu]]21、models.URLField字符串,地址正則表達式22、models.BinaryField二進制23、models.ImageField圖片24、models.FilePathField文件二、字段參數1、null=True數據庫中字段是否可以為空2、blank=Truedjango的 Admin 中添加數據時是否可允許空值3、primary_key = False主鍵,對AutoField設置主鍵后,就會代替原來的自增 id 列4、auto_now 和 auto_now_addauto_now 自動創建---無論添加或修改,都是當前操作的時間auto_now_add 自動創建---永遠是創建時的時間5、choicesGENDER_CHOICE = ((u’M’, u’Male’),(u’F’, u’Female’),)gender = models.CharField(max_length=2,choices = GENDER_CHOICE)6、max_length7、default默認值8、verbose_nameAdmin中字段的顯示名稱9、name|db_column數據庫中的字段名稱10、unique=True不允許重復11、db_index = True數據庫索引12、editable=True在Admin里是否可編輯13、error_messages=None錯誤提示14、auto_created=False自動創建15、help_text在Admin中提示幫助信息16、validators=[]17、upload-to2. 生成數據庫遷移文件&創建數據表

# 命令行執行# 創建數據庫表遷移文件python manage.py makemigrations# 查看遷移文件python manage.py sqlmigrate blog 0001

然后會發現在migrations文件夾下生成了以0001開頭的py文件,在命令行會輸出我們的建表語句(sql)

# 生成數據表python manage.py migrate

可以在 navicate 中連接 db.sqlite 進行數據的查看。

3. 創建超級管理員

python manage.py createsuperuser

跟著步驟就可以了,創建超級管理員的賬號和密碼。一定牢記嗷~

啟動項目后訪問 http://127.0.0.1:8000/admin/然后就可以進入頁面啦

頁面中的 Groups 和 Users 是 Django 在用戶管理應用中默認的。

4. 發布博客文章

我們登陸進來之后沒有找到發布文章的地方,為什么呢?

接下來就需要我們對 ./blog/admin.py 文件做修改了。

from django.contrib import adminfrom .models import BlogArticles# 將該類BlogArticles注冊到admin中admin.site.register(BlogArticles)

再次返回我們的 http://127.0.0.1:8000/admin/ 就可以進行文章的添加了。

5. 顯示博客信息

我們寫好的文章如果想讓別人看到,如何做呢?

利用Python Django實現簡單博客系統

在templates目錄下創建一個文件base.html 和一個blog文件夾,里面有 title.html , content.html 文件

文件內容如下:

# base.html<!DOCTYPE html><html lang='zh-cn'><head> <meta http-equiv='X-UA-Compatible' content='IE=Edge'> <meta charset='utf-8'> <meta name='viewport' content='width=device-width, initial-scale=l'> <title>{% block title %}{% endblock %}</title> <link rel='stylesheet' rel='external nofollow' > <link rel='stylesheet' rel='external nofollow' ></head><body><div class='container'> {% block content %} {% endblock %}</div></body><script src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'></script></html># title.html{% extends 'base.html' %}{% block title %} 博客標題{% endblock %}{% block content %} <div class='row text-center vertical-middle-sm'><h1>小北的博客</h1> </div> <div class='row'><div class='col-xs-12 col-mo-8'> <ul>{% for blog in blogs %} <li><a href='http://m.b3g6.com/bcjs/{{ blog.id }}' rel='external nofollow' >{{ blog.title }}</a> </li>{% endfor %} </ul></div><div class='col-xs-6 col-mo-4'> <h2>廣告</h2> <p>和我一起學python</p></div> </div>{% endblock %}# content.html{% extends 'base.html' %}{% block title %} 博客內容{% endblock %}{% block content %} <div class='row text-center vertical-middle-sm'><h1>{{ article.title }}</h1> </div> <div class='row'><div class='col-xs-12 col-mo-8'> <div><p>{{ article.author.username }}</p><p>{{ publish }}</p><p>{{ article.body }}</p> </div></div><div class='col-xs-6 col-mo-4'> <h2>廣告</h2> <p>和我一起學python</p></div> </div>{% endblock %}

一定要在 templates 下創建,這是Django 默認的存放本應用所需模版的目錄

圖為示例結構

利用Python Django實現簡單博客系統

在./blog/views.py 中編寫視圖函數

from django.shortcuts import renderfrom .models import BlogArticles# Create your views here.def blog_title(request): blogs = BlogArticles.objects.all() return render(request, 'blog/title.html', {'blogs': blogs})def blog_aritcle(request, article_id): article = BlogArticles.objects.get(id=article_id) pub = article.publish return render(request, 'blog/content.html', {'article': article, 'publish': pub})

在url中注冊路由地址

在 blog/urls.py 中

from django.conf.urls import urlfrom . import viewsfrom django.urls import pathfrom blog.views import *urlpatterns = [ path(’title’, blog_title, name=’blog_title’), path(’<int:article_id>’, blog_aritcle, name=’blog_aritcle’),]

在當前項目下的urls.py 中

from django.contrib import adminfrom django.urls import pathfrom django.conf.urls import url, includeurlpatterns = [ path(’admin/’, admin.site.urls, name=’admin’), path(’blog/’, include(’blog.urls’)),]

然后頁面就可以訪問了,可以查看文章列表頁和詳情頁。

到此這篇關于利用Python Django實現簡單博客系統的文章就介紹到這了,更多相關Django實現博客系統內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美成a人国产精品高清乱码在线观看片在线观看久 | 日产精品一区二区| 国产精品久久久久久久久久齐齐| 亚洲欧洲免费| 欧美一区91| 国产精品mm| 国产精品精品| 国产91精品对白在线播放| 免费精品国产的网站免费观看| 欧美在线亚洲综合一区| 视频一区二区欧美| 视频一区中文字幕精品| 日韩精选在线| 日产午夜精品一线二线三线| 午夜精品久久久久久久久久蜜桃| 一区二区小说| 蜜桃av一区二区三区电影| 亚洲毛片在线免费| 久久国产婷婷国产香蕉| 久久久免费人体| 国内精品美女在线观看| 久久久五月天| 女同性一区二区三区人了人一| 麻豆精品91| 日本一区二区三区中文字幕| 国产精品一区二区三区四区在线观看 | 亚洲天堂久久| 日韩午夜av在线| 亚洲一区二区日韩| 日韩高清电影一区| 福利一区和二区| 婷婷成人基地| 日韩有吗在线观看| 精品免费在线| 免费黄色成人| 欧美亚洲福利| 欧美羞羞视频| 免费久久99精品国产自在现线| 日韩av网站免费在线| 国产毛片久久久| 91精品xxx在线观看| 一区二区三区国产盗摄| 国产欧美日韩在线观看视频| 日韩深夜视频| 婷婷亚洲成人| 98精品久久久久久久| 久久国产成人| 欧美欧美黄在线二区| 成人免费电影网址| 亚洲日本久久| 中文字幕在线官网| 蜜臀a∨国产成人精品| 国产精选一区| 亚洲精品一区二区妖精| 中文字幕av亚洲精品一部二部| 福利一区二区| 日韩在线一二三区| 蜜桃精品在线| 日韩精品欧美大片| 免费看av不卡| 欧美亚洲国产日韩| 91精品国产成人观看| 亚州精品视频| 国产精品高颜值在线观看| 国产精品社区| 国产高潮在线| 亚洲精品影院在线观看| 人人精品亚洲| 国产精品天天看天天狠| 久久国产亚洲精品| 欧美日本三区| 免费视频亚洲| 老司机精品视频在线播放| 国产精品美女| 国产盗摄——sm在线视频| 亚洲精品在线二区| 亚洲夜间福利| 国产成人精品999在线观看| 日韩在线观看一区二区三区| 日韩精品欧美| 久久精品资源| 日韩成人午夜精品| 99香蕉国产精品偷在线观看 | 免费看黄色91| 久久精品成人| 欧美激情视频一区二区三区在线播放| 尤物精品在线| a日韩av网址| 国产日韩欧美| 亚洲一二av| 欧美1区免费| 高清av不卡| 欧美aaaaaa午夜精品| 蜜桃av一区二区| 亚洲激情中文在线| 婷婷激情一区| 国产精品宾馆| 日本强好片久久久久久aaa| 男女激情视频一区| 欧美二区视频| 免费在线小视频| 国内揄拍国内精品久久| 视频一区日韩精品| 蜜臀a∨国产成人精品| 婷婷色综合网| 久久精品亚洲人成影院| 成人精品国产亚洲| 久久亚洲黄色| 日韩美女国产精品| 首页国产欧美久久| 狠狠操综合网| 久久久久久久久久久9不雅视频| 精品伊人久久| 国产伦精品一区二区三区在线播放| 亚洲久久视频| 中文字幕日韩亚洲| 亚洲精品乱码日韩| 视频一区在线播放| 亚洲在线久久| 蜜桃传媒麻豆第一区在线观看| 亚洲欧美日本国产专区一区| 欧美影院三区| 亚洲精品小说| 欧美va天堂| 激情欧美丁香| 亚洲电影在线一区二区三区| 亚洲天堂成人| 国产视频亚洲| 水蜜桃久久夜色精品一区的特点 | 香蕉久久精品| 人人香蕉久久| 国户精品久久久久久久久久久不卡| 欧美天堂视频| 国产一区视频在线观看免费| 日韩大片在线观看| 99久久精品网站| 欧美中文字幕一区二区| 欧美日韩国产精品一区二区亚洲| 国产日韩专区| 丝袜亚洲精品中文字幕一区| 国产精品jk白丝蜜臀av小说| 免费看的黄色欧美网站| 手机精品视频在线观看| 免费一区二区视频| 中文字幕av一区二区三区四区| 日韩欧美中文字幕电影| 国产精品欧美三级在线观看| 久久精品亚洲| 成人av三级| 亚洲午夜电影| 巨乳诱惑日韩免费av| 蜜桃视频一区二区三区 | 在线视频精品| 亚洲精品黄色| 欧美精品二区| 久久久久国产| 免费在线看一区| 国产精品麻豆成人av电影艾秋 | 亚洲精品伊人| 你懂的国产精品| 大香伊人久久精品一区二区| 久久久久美女| 亚洲欧美网站在线观看| 国产福利一区二区精品秒拍 | 欧美亚洲在线日韩| 亚洲精选91| 老牛国内精品亚洲成av人片 | 一二三区精品| 精品高清久久| 精品一区在线| 蜜臀av亚洲一区中文字幕| 欧美日韩夜夜| 日韩欧美二区| 日本不卡不码高清免费观看| 日本激情一区| 蜜桃一区二区三区在线观看| 麻豆国产精品视频| 国产一区二区高清| 久久精品资源| 水野朝阳av一区二区三区| 国产精品乱战久久久| 国产麻豆久久| 亚洲青青久久| 中文字幕一区久| 一区二区国产在线| 国产精品不卡| 国产精品88久久久久久| 欧美亚洲综合视频| 日韩精品诱惑一区?区三区| 久久国产精品毛片| 国产一区二区三区亚洲综合| 在线视频免费在线观看一区二区| 麻豆免费精品视频| 亚洲一区日韩| 国产 日韩 欧美 综合 一区| 免费不卡在线观看| 在线天堂中文资源最新版| 亚洲久草在线| 尤物tv在线精品| 美女久久99|