多人博客項目(項目搭建)

---恢復內容開始---python

一、概述

  Django採用MVC架構設計的開源的WEB 快速開發框架mysql

  優勢 :正則表達式

    可以快速的開發,如 Auth,Cache, 模板sql

    MVC設計模式shell

    實用的管理後臺數據庫

    自帶ORM, Template,Form,Auth核心組件django

    簡潔的URL 設計設計模式

    周邊插件豐富架構

  缺點:oracle

    框架中,由於東西大而全

    同步阻塞

  因此Django的設計目標就是一款大而全,便於企業快速開發 項目的框架,所以企業應用較廣

二、Django版本

  

三、安裝Django

  python使用3。6.x

  Django下載地址:https://www.djangoproject.com/download/

   

  本次使用Django 1.11 版本,它也是長期支持版本LTS, 請在虛擬環境中安裝

  在虛擬環路徑中,Lib/site-packages/django/bin 下有一個 django-admin.py ,從它開始

    $ diango-admin  --version

    $ diango-admin  

 1 (blog2) F:\Python項目\blog12>django-admin
 2 
 3 Type 'django-admin help <subcommand>' for help on a specific subcommand.
 4 
 5 Available subcommands:
 6 
 7 [django]
 8     check
 9     compilemessages
10     createcachetable
11     dbshell
12     diffsettings
13     dumpdata
14     flush
15     inspectdb
16     loaddata
17     makemessages
18     makemigrations
19     migrate
20     runserver
21     sendtestemail
22     shell
23     showmigrations
24     sqlflush
25     sqlmigrate
26     sqlsequencereset
27     squashmigrations
28     startapp
29     startproject
30     test
31     testserver
32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are
33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
執行django-admin可選命令

 

    注意:沒有特殊聲明,全部的操做都在項目根目錄下

四、建立django項目

  $ django-admin startproject blog .    注意最後有一個點

  不然:會出現兩層blog   

    

  正常:

    

   上面明亮就在當前項目的根目錄中構建了Django項目的初始文件, 點  表明項目根目錄

    重要文件說明:

      • manage.py 本項目管理的命令行工具,應用建立,數據庫遷移等都使用它完成
      • blog/settings.py 本項目的配置文件,數據庫參數等
      • blog/urls.py url路徑映射配置,默認狀況下,只配置了/admin的路由
      • blog/wsgi:定義WSGI接口信息,通常無需改動

 

五、數據庫配置

  使用數據庫,須要修改默認的數據庫配置

  在主項目的settings.py下的DATABASES, 默認使用的是sqllite,修改成mysql  

 1 DATABASES = {
 2     'default': {
 3         'ENGINE':'diango.db.backends.mysql',
 4         'NAME': 'blog',
 5         'USER':'root',
 6         'PASSWORD':'123456',
 7         'HOST':'192.168.112.110',
 8         'PORT':'3306'
 9     }
10 }

 

  HSOT 數據庫主機,缺省是空字符串,表明localhost, 如果「/」 開頭表示使用Unix Socket 鏈接  

  OPTIONS 選項,字典,參考MySQL文檔

  內建的引擎有:

    • 'diango.db.backends.postgresql'
    • 'diango.db.backends.msyql'
    • 'diango.db.backends.sqlite3'
    • 'diango.db.backends.oracle'

六、MySQL數據庫驅動  

  https://docs.djangoproject.com/en/2.0/ref/databases/

  Django 支持mysql 5.5 +

  Django 官方推薦使用本地驅動 mysqlclient 1.3.7 +

    $ pip install mysqlclient,( 可是報錯)

      

    下載地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/

七、建立應用

  建立用戶應用:$ python manage.py startapp user

  可能會報錯,我是用的3.7版本,報錯:

  

  解決辦法:

  

  該應用完成 一下功能

    用戶註冊

    用戶登陸

  建立應用後,項目根目錄下產生一個 user目錄,有以下文件:

  

  

八、註冊應用

  在settings.py中增長user應用,目的是爲了後臺管理admin使用,或遷移migrate使用

  

九、模型Model

  

  

  字段選項:注意 default不是建立數據庫建立時的不填的初始值

  

  關係類型字段類:

  

  一對多時,自動建立會增長_id 後綴

    • 從一訪問多,使用  對象.小寫模型類_set
    • 從一訪問一,使用  對象.小寫模型類

  訪問id   對象.屬性_id

十、建立User的Model類

  基類models.Model

  表名不指定默認使用<appname>_<model_name>  

 1 from django.db import models
 2 
 3 # Create your models here.
 4 
 5 class User(models.Model):
 6     class Meta:
 7         db_table = 'user'
 8     id = models.AutoField(primary_key=True)
 9     name = models.CharField(max_length=48, null=False)
10     email = models.CharField(max_length=48,unique=True, null=False)
11     password = models.CharField(max_length=128, null=False)
12 
13     def __repr__(self):
14         return '<user{}{}'.format(self.id, self.name)

 

 

十一、遷移Migration

  遷移:從模型定義生成數據庫的表

  一、生成遷移文件

  

  

    修改過Model類,還須要調用makemigrations ,而後migrate,遷移文件的序號會增長

    注意:遷移的應用必須在settings.py 的INSTALLED_APPS中註冊

  二、執行遷移生成數據庫的表

  

  

  

  執行了遷移,還同時生成了admin管理用的表

  查看數據庫,user表建立好,字段設置正常

  

 

  若是修改 models.py 後,在遷移,會產生新的文件:

  

 

---恢復內容結束---

一、概述

  Django採用MVC架構設計的開源的WEB 快速開發框架

  優勢 :

    可以快速的開發,如 Auth,Cache, 模板

    MVC設計模式

    實用的管理後臺

    自帶ORM, Template,Form,Auth核心組件

    簡潔的URL 設計

    周邊插件豐富

  缺點:

    框架中,由於東西大而全

    同步阻塞

  因此Django的設計目標就是一款大而全,便於企業快速開發 項目的框架,所以企業應用較廣

二、Django版本

  

三、安裝Django

  python使用3。6.x

  Django下載地址:https://www.djangoproject.com/download/

   

  本次使用Django 1.11 版本,它也是長期支持版本LTS, 請在虛擬環境中安裝

  在虛擬環路徑中,Lib/site-packages/django/bin 下有一個 django-admin.py ,從它開始

    $ diango-admin  --version

    $ diango-admin  

 1 (blog2) F:\Python項目\blog12>django-admin
 2 
 3 Type 'django-admin help <subcommand>' for help on a specific subcommand.
 4 
 5 Available subcommands:
 6 
 7 [django]
 8     check
 9     compilemessages
10     createcachetable
11     dbshell
12     diffsettings
13     dumpdata
14     flush
15     inspectdb
16     loaddata
17     makemessages
18     makemigrations
19     migrate
20     runserver
21     sendtestemail
22     shell
23     showmigrations
24     sqlflush
25     sqlmigrate
26     sqlsequencereset
27     squashmigrations
28     startapp
29     startproject
30     test
31     testserver
32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are
33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
執行django-admin可選命令

 

    注意:沒有特殊聲明,全部的操做都在項目根目錄下

四、建立django項目

  $ django-admin startproject blog .    注意最後有一個點

  不然:會出現兩層blog   

    

  正常:

    

   上面明亮就在當前項目的根目錄中構建了Django項目的初始文件, 點  表明項目根目錄

    重要文件說明:

      • manage.py 本項目管理的命令行工具,應用建立,數據庫遷移等都使用它完成
      • blog/settings.py 本項目的配置文件,數據庫參數等
      • blog/urls.py url路徑映射配置,默認狀況下,只配置了/admin的路由
      • blog/wsgi:定義WSGI接口信息,通常無需改動

 

五、數據庫配置

  使用數據庫,須要修改默認的數據庫配置

  在主項目的settings.py下的DATABASES, 默認使用的是sqllite,修改成mysql  

 1 DATABASES = {
 2     'default': {
 3         'ENGINE':'diango.db.backends.mysql',
 4         'NAME': 'blog',
 5         'USER':'root',
 6         'PASSWORD':'123456',
 7         'HOST':'192.168.112.110',
 8         'PORT':'3306'
 9     }
10 }

 

  HSOT 數據庫主機,缺省是空字符串,表明localhost, 如果「/」 開頭表示使用Unix Socket 鏈接  

  OPTIONS 選項,字典,參考MySQL文檔

  內建的引擎有:

    • 'diango.db.backends.postgresql'
    • 'diango.db.backends.msyql'
    • 'diango.db.backends.sqlite3'
    • 'diango.db.backends.oracle'

六、MySQL數據庫驅動  

  https://docs.djangoproject.com/en/2.0/ref/databases/

  Django 支持mysql 5.5 +

  Django 官方推薦使用本地驅動 mysqlclient 1.3.7 +

    $ pip install mysqlclient,( 可是報錯)

      

    下載地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/

七、建立應用

  建立用戶應用:$ python manage.py startapp user

  可能會報錯,我是用的3.7版本,報錯:

  

  解決辦法:

  

  該應用完成 一下功能

    用戶註冊

    用戶登陸

  建立應用後,項目根目錄下產生一個 user目錄,有以下文件:

  

  

八、註冊應用

  在settings.py中增長user應用,目的是爲了後臺管理admin使用,或遷移migrate使用

  

九、模型Model

  

  

  字段選項:注意 default不是建立數據庫建立時的不填的初始值

  

  關係類型字段類:

  

  一對多時,自動建立會增長_id 後綴

    • 從一訪問多,使用  對象.小寫模型類_set
    • 從一訪問一,使用  對象.小寫模型類

  訪問id   對象.屬性_id

十、建立User的Model類

  基類models.Model

  表名不指定默認使用<appname>_<model_name>  

 1 from django.db import models
 2 
 3 # Create your models here.
 4 
 5 class User(models.Model):
 6     class Meta:
 7         db_table = 'user'
 8     id = models.AutoField(primary_key=True)
 9     name = models.CharField(max_length=48, null=False)
10     email = models.CharField(max_length=48,unique=True, null=False)
11     password = models.CharField(max_length=128, null=False)
12 
13     def __repr__(self):
14         return '<user{}{}'.format(self.id, self.name)

 

 

十一、遷移Migration

  遷移:從模型定義生成數據庫的表

  一、生成遷移文件

  

  

    修改過Model類,還須要調用makemigrations ,而後migrate,遷移文件的序號會增長

    注意:遷移的應用必須在settings.py 的INSTALLED_APPS中註冊

  二、執行遷移生成數據庫的表

  

  

  

  執行了遷移,還同時生成了admin管理用的表

  查看數據庫,user表建立好,字段設置正常

  

 

  若是修改 models.py 後,在遷移,會產生新的文件:

  

 十二、Django 後臺管理

  一、建立管理員

    

  二、本地化

    

  三、啓動WEB Server  啓動時能夠指定端口

    

  四、登陸後臺管理

      

  五、註冊應用模塊

      在user應用的admin.py 添加

       

            

  user就能夠在後臺增生改查了

 

1三、路由

  路由功能就是實現URL模式匹配處理函數之間的映射

  路由配置要在項目的urls.py 中配置,也能夠多級配置,在每個應用中,創建一個urls.py文件配置路由映射

  url函數

  url( regex, view, kwargs=None, name=None ) 進行模式匹配

  regex:正則表達式,與之匹配的URL 會執行對應的第二個參數view

  view:用於執行與正則表達式匹配的URL

  kwargs:視圖使用的字典類型的參數

  name:用來反向獲取URL

  urls.py 內容以下:

      

    測試:

    

    

  url(r'index', index),# 127.0.0.1:8000/index 只能這樣訪問
  url(r'index/', index), # 127.0.0.1:8000/index/ 必須把 / 加上  
  url(r'index/$', index) # index  後面自動加 /

     經常使用屬性打印:(默認是GET)

  

    打印二:(GET)

  

 

    請求信息測試 和JSON 響應:


  

    

    在項目中首頁 多數使用HTML 顯示,爲了加載速度快,通常多使用靜態頁面。

    若是首頁內容多,還有部分數據須要變化,將變化部分使用AJAX技術從後臺獲取數據

    本次,爲了學習模板技術,只將首頁採用Django的模板技術實現

 1四、GET和POST 調試:

    使用Postman 工具調試

    GET      

    POST:

  

相關文章
相關標籤/搜索