Django 0.2

一. 登陸功能的實現html

    1. form表單提交數據的注意事項:python

        1. 是form不是from,必需要有method和actionmysql

        2. 全部獲取用戶輸入的表單標籤要放在form表單裏面,表單標籤(input,select)必需要有name屬性sql

        3. form表單必需要有submit按鈕數據庫

 

    2. GET和POSTdjango

        用GET: 向服務端請求一個網頁的時候;搜索引擎檢索時瀏覽器

        用POST: 使用表單向服務器提交數據時服務器

 

    3. request.method --> 獲取的是你請求的方法(GET/POST...)session

      # 返回的GET,POST都是大寫的,因此在編寫業務邏輯時,必須大寫!!!app

 

    4. request.POST   --> 獲取POST提交過來的所有數據(字典)

       # ps request.POST的格式{'name':[], 'password': []}. 能夠根據[key]的形式取value,但推薦用.get(),這樣沒有的話,返回None,不報錯。

    5. redirect        --> 跳轉到指定頁面!!!

       # 當瀏覽器解析到3**時,直接向redirect的url發請求,不會繼續解析。

 

總結: 基礎必會三件套

     from django.shortcuts import HttpResponse,render,redirect

        a. HttpResponse("OK")

        b. render(request, "login.html")

        c. redirect("URL")

 

    6. app: app之於project,至關於學院之於學校;一個學校能夠有多個學院;當項目較大時,推薦將不一樣的文件放入不一樣的app中

 

        建立APP:

            a. 在pycharm中的terminal中

               python3 manage.py startapp app01  

# /usr/local/bin/python3.6 manage.py startapp app01

            b. 在項目創立初期,在application中填寫app01

            c. Tools -> Run manage.pyTask -> startapp app01

 

        建立好APP,記得告訴Django, 我有這個app:

            在settings.py中,

            # 安裝的app都有哪一些

            INSTALLED_APPS = [

                'django.contrib.admin',

               'django.contrib.auth',

               'django.contrib.contenttypes',

               'django.contrib.sessions',

               'django.contrib.messages',

               'django.contrib.staticfiles',

                'app01',

                # 'app01.apps.App01Config',  # 推薦這一種,不過目前兩種方式均可以

            ]

 

         推薦將函數放到app01下的views.py中

 

     7. 若是出現forbidden,去settings.py中將46行附近的csrf相關行註釋掉

                                   

二. ORM(對象關係映射)

            1. 複習導入pymysql模塊,操做數據庫數據

                        import pymysql

                        conn = pymysql.connect(

                                    host="127.0.0.1",

                                    port=3306,

                                    user="root",

                                    password="123",

                                    database="day62",

                                    charset="utf8"

                        )

                        cursor = conn.cursor()

                        cursor.execute("select * from user;")

                        ret = cursor.fetchall()

 

            2. 用orm操做數據庫(至關於導入jQuery,用jQuery語句($("#id"))替代原生sql語句(   document.getElementById(id)))

        數據表    --對應-->    類

        數據行    --對應-->    實例對象

        字段      --對應-->    屬性

            

            3. 代碼操做數據庫的方式比較;

                        直接執行SQL

                                    優勢:執行效率高

                                    缺點:開發效率低

                        按照特定的語法寫,翻譯成SQL語句再去執行

                                    優勢:開發效率高

                                    缺點:執行效率低,你會忘記SQL語句

 

                        總結:ORM和原生的SQL語句,根據具體的應用場景自行取捨。

 

            4. 不一樣框架用不一樣的orm

                e.g. sqlAlchemy  (Flask的orm)

                        

三. Django裏面的ORM的使用:

    1. 告訴Django鏈接那個數據庫 (在settings.py的databases中配置mysql)

        DATABASES = {

            'default': {

                'ENGINE': 'django.db.backends.mysql',

                'NAME': 'db1',  # 哪一個database

                'HOST': '127.0.0.1',

                'PORT': 3306,

                'USER': 'root',

                'PASSWORD': '123',

            }

        }

 

    2. 告訴Django怎麼鏈接

        Django默認使用的是MySQLdb模塊 鏈接數據庫, 但MySQLdb不支持python3。因此,要告訴Django用pymysql這個模塊去鏈接MySQL

        在settings.py同目錄下的__init__.py文件中,指定使用pymysql模塊代替MySQLdb

            import pymysql

            pymysql.install_as_MySQLdb()

 

    3. 在app/models.py文件中定義類

        必定要繼承models.Model

    4. 執行建立表的操做(在pycharm的terminal中鍵入)

        1. python3 (/usr/local/bin/python3.6)manage.py makemigrations  --> 將models.py的修改登記到小本本上

        2. python3 (/usr/local/bin/python3.6)manage.py migrate         --> 將修改翻譯成SQL語句,去數據庫執行

        亦可: Tools -> Run manage.pyTask -> manage.py makemigrations;manage.py migrate

 

    5. 編輯表

       a. 在pycharm中的Database中(若沒有,view-> tool buttons), + -> data source -> mysql -> download missing driver files -> test connection

          添加數據後,找綠色向上箭頭保存

 

       b. navicate

 

       c. cmd中sql語句 

 

四. 常規步驟

1. 在models中創建一個類

 

2. 在urls中加上對應關係

 

3. 在views中添加該函數

 

4. 在templates中建立該html文件

 

五. 圖書管理系統(項目)

            1. 表結構設計

                        1. 出版社

                        2. 書

                        3. 做者

 

            2. Django的模板語言

            {% for publisher in publisher_list %}  # 注意{%中間沒有空格

    <tr>

        <td>{{ publisher.id }}</td>

        <td>{{ publisher.name }}</td>

    </tr>

    {% endfor %}

相關文章
相關標籤/搜索