python3 djiango2.0 學習筆錄


Django學習

pip install virtualenv
1、安裝虛擬環境
cmd
H:
cd dir envs
virtualenv mytestvirtual
cd mytestvirtual/Scripts/activate 啟動虛擬環境
或者

pip install virtualwrapper(管理虛擬環境的)
將envs加入系統環境變量
cd envs
workon mytestvirtual  啟動虛擬環境


2、運行虛擬環境,安裝Django

*Django項目中,項目的組織結構為:一個項目包含多個應用,一個應用對應一個業務模塊
*示例:創建項目的名稱為 BookManger,創建應用的名稱為Book
*在當前用戶的某個目錄下創建項目,這樣不會發生權限問題

3、創建Django項目

在桌面創建項目:cd ~/Desktop/
創建項目的命令:django-admin startproject BookManger
cd ~/Desktop/BookManger/
tree /f
同名文件夾BookManger
文件:manage.py

4、創建Django應用
python manage.py startapp Book
生成 Book應用文件夾

5、pycharm打開BookManger項目
where python 查看虛擬環境的python.exe的絕對路徑
調該欄目的python環境為虛擬環境

6、配置 settings.py 增加我們的Book應用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
#     安裝應用
    'Book',
]

7、運行
python manage.py runserver python的測試服務器
http://127.0.0.1:8000/ 瀏覽器可以訪問
創建成功

8、使用Django進行數據庫開發
***************************************************************************************
 MVT 設計模式中的Model,專門負責和數據庫交互 models.py
 由於Model 中內嵌了 ORM框架,所以不需要直接面向數據庫編程
 而是定義模型類,通過 模型類和對象 完成數據表的 增刪改查
 ORM框架 就是把數據表的行與相應的對象建立關聯,互相轉換,使得數據庫的操作面向對象
***************************************************************************************
*定義模型類

class BookInfo(models.Model):
    """定義書籍信息的模型類"""

    #設計name
    name = models.CharField(max_length=10)


class PeopleInfo(models.Model):
    """定義人物信息的模型類"""

    name =  models.CharField(max_length=10)
    gender = models.BooleanField()
    book = models.ForeignKey(BookInfo)#外鍵設置
    #models.ForeignKey(BookInfo,on_delete=models.CASCADE)

*模型遷移

生成遷移:
python manage.py makemigrations
***************************************************************************************
 Book\migrations\0001_initial.py
    - Create model BookInfo
    - Create model PeopleInfo
***************************************************************************************
執行遷移:
*********python manage.py migrate*********

生成db.sqlite3

=====================================MYSQL==================================
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
下載whl
pip install ***.whl

CREATE  DATABASE  database_name CHARACTER SET UTF8;       指定數據庫的編碼utf8

DATABASES = {
    # 默認的sqlite3
    # 'default': {
    #     'ENGINE': 'django.db.backends.'default': {
    #         'ENGINE': 'django.db.backends.sqlite3',
    #         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    #     }',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }
    # 配置mysql
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'bookdjango',# 數據庫名字
        'HOST': 'localhost',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': 'root',
    }
}
輸入python manage.py sqlmigrate appname 0001查看生成的sql語法
如果sql正確,不能新建數據表:
報錯 raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
1、修改數據庫的權限,版本5.55  失敗
2、將django的版本安裝2.0   pip install Django==2.0.0 -i https://pypi.douban.com/simple
*********python manage.py sqlmigrate Book 0001*********
Book app_name應用名稱 0001 migration_name 文件0001_initial.py
=====================================MYSQL==================================
*操作數據庫


django站點 后台 web訪問

站點:分為 內容發布 和 公共訪問 兩部分
內容發布:網站的管理員復制查看、添加、修改、刪除數據
使用django的管理模塊,需要以下步驟:
*管理界面本地化

語言、時間設置
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
===
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

*創建管理員

python manage.py createsuperuser
admin 2018huahua
python manage.py runserver

*注冊模型類

admin.py
# 注冊書籍信息
admin.site.register(BookInfo)
# 注冊人物信息
admin.site.register(PeopleInfo)

*發布內容到數據庫

*自定義站點管理頁面

models.py

改變部分

class BookInfo(models.Model):
    """定義書籍信息的模型類"""

    #設計name
    name = models.CharField(max_length=10)

    def __str__(self):
        """以字符串的形式輸出模型"""
        return self.name

改變某個類型的站點頁面
models.py

class PeopleInfoAdmin(admin.ModelAdmin):
    """人物信息模型類的站點管理類 web"""
    list_display = ['id','name','gender','book']



# 注冊書籍信息
admin.site.register(BookInfo)
# 注冊人物信息
admin.site.register(PeopleInfo, PeopleInfoAdmin)#注冊人物信息類 和人物站點信息管理類

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM