完整登陸示例(ORM)

靜態文件配置

settings文件中:css

STATIC_URL = '/static/' # 別名

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')

]

在根目錄下建立static文件夾,包括js,css,img,plugins等基本文件夾,將文件分類存儲,方便重複使用html

在pycharm提供的的templates中建立html文件,將static中的樣式引入python

HTML文件配置

form表單設置mysql

<form class="form-signin" action="" method="post"> 
# action指向提交的地址,沒寫默然是本地
# method指向http的請求方法

 

須要提交數據時,input輸入框須要設置name屬性,向後臺提交數據sql

有一個butto按鈕或者input type='submit' 點擊向後臺提交數據數據庫

application

app建立django

方式一: 在終端app

python manage.py startapp app名稱ide

方式二: pycharm工具

tools選項當中的run manage.py task   輸入startapp app名稱

 

方式三: 在pycharm建立項目是,more settings設置中,直接輸入application name,項目建立時會一塊兒建立好app,而且在settings進行註冊

app註冊

在settings配置文件中找到相關設置,添加進去

ORM  對象關係映射

爲了解決面向對象與關係數據庫存在的互不匹配的現象的技術,經過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關係數據庫中

在Django中使用mysql的流程:

1.在cmd終端建立一個數據庫

2.在settings文件中進行數據庫的配置

3.告訴Django使用pymysql模塊鏈接mysql數據庫

在與settings同級目錄下的__init__中寫入

 

4. 在app下的models.py中寫類(表)

 

from django.db import models
class User(models.Model):                  # 括號內爲固定寫法 使用類的形式建表  表名爲 app名稱_小寫類名
    username = models.CharField(max_length=32)  # username和password是字段名稱
    password = models.CharField(max_length=32)  # 至關於數據庫中的約束條件varchar(32) 

 

 5.在終端執行數據庫遷移的命令

python manage.py makemigrations   # 保存models.py的變動記錄 會在migrations文件夾中新建一個文件
python manage.py migrate          # 將變動記錄執行,同步到數據庫中  

 

 在pycharm提供的數據庫可視化工具中能夠寫入向數據庫中數據

 

獲取網頁提交的數據

request.method             獲取請求方式
request.POST               獲取POST提交的數據 相似字典的形式
request.POST['username']   根據鍵查找值,查找不到會報錯
request.POST.get('username','xxx') 根據鍵查找值,查找不到時能夠自定義返回內容

 

數據庫操做

models.User.objects.all()      # 全部數據   獲得對象列表
models.User.objects.get(username='alex')  # 獲取一個知足條件的對象  沒有數據或者查詢到多條數據就報錯
models.User.objects.filter(username='alex1')  # 獲取知足條件的全部對象  返回對象列表

 

重定向

from django.shortcuts import render, redirect, HttpResponse

return redirect('http://www.xiaohuar.com/hua/')     指向網頁連接
return redirect('/index/')                          指向本地文件
  # 響應頭 Location:重定向地址

 

 

def login(request):
    # print(request.POST)    # 獲取POST提交的數據 字典形式
    username = request.POST.get('username')     # 根據from表單中的name屬性,按照字典的操做獲取用戶輸入的數據 字符串形式
    password = request.POST.get('password')
    # 將用戶輸入的數據跟數據庫中的數據進行校驗
    if models.User.objects.filter(username=username,password=password):   #前一個username爲數據庫字段名,後一個爲獲取的數據變量
        return redirect('/index/')
    return render(request,'login.html')     # 校驗不經過時 仍是顯示當前頁面
代碼示例
相關文章
相關標籤/搜索