1. 程式人生 > >Python之django基礎第一天,認識django

Python之django基礎第一天,認識django

什麼是框架?

框架,即framework,特指為解決一個開放性問題而設計的具有一定約束性的支撐結構,使用框架可以幫你快速開發特定的系統,簡單地說,就是你用別人搭建好的舞臺來做表演。

對於所有的Web應用,本質上其實就是一個socket服務端,使用者的瀏覽器其實就是一個socket客戶端。

mvc 和mvt 模式的區別:

著名的MVC模式:所謂MVC就是把web應用分為模型(M),控制器(C),檢視(V)三層;他們之間以一種外掛似的,鬆耦合的方式連線在一起。

模型負責業務物件與資料庫的物件(ORM),檢視負責與使用者的互動(頁面),控制器(C)接受使用者的輸入呼叫模型和檢視完成使用者的請求。

什麼是Django,Django是一個開放原始碼的Web應用框架,由Python寫成。採用了MVC的框架模式

Django的MTV模式本質上與MVC模式沒有什麼差別,也是各元件之間為了保持鬆耦合關係,只是定義上有些許不同,Django的MTV分別代表:

Model(模型):負責業務物件與資料庫的物件(ORM)

Template(模版):負責如何把頁面展示給使用者

View(檢視):負責業務邏輯,並在適當的時候呼叫Model和Template

此外,Django還有一個url分發器,它的作用是將一個個URL的頁面請求分發給不同的view處理,view再呼叫相應的Model和Template

django執行圖

Python命令列建立專案:django-admin stratproject 專案名

Python命令列建立子應用: django manage.py startapp 子應用名

專案目錄結構

django第一個hellowork

def cur_time(request): # 建立一個方法
 return HttpResponse("hello,django") # 使用HttpResponse進行返回
# 路由 url(r"^hello_django/",views.cur_time), 瀏覽器通過127.0.0.1:8000/hello_django 進行訪問

使用django的模板

建立一個html頁面

前端程式碼
 <form action="/rongou/" method="post">
 <p>使用者名稱:<input type="text" name="username"></p>
 <p>性別::<input type="text" name="sex"></p>
 <p>郵箱:<input type="text" name="email"></p>
 <p>手機號:<input type="text" name="mobile"></p>
 <p><input type="submit" value="提交"></p>
 </form>
 <table border="1px">
 <tr>
 <td>使用者名稱</td>
 <td>性別</td>
 <td>郵箱</td>
 <td>手機號</td>
 </tr>
 {# 使用模板進行渲染 #}
 {% for f in list %}
 <tr>
 <td>{{ f.username }}</td>
 <td>{{ f.sex }}</td>
 <td>{{ f.email }}</td>
 <td>{{ f.mobile }}</td>
 </tr>
 {% endfor %}
 </table>
</body>
後臺程式碼
def indexs(request):
 # 校驗提交方式
 if request.method == "POST":
 username = request.POST.get("username") # 獲取使用者名稱
 sex = request.POST.get("sex") # 獲取性別
 email = request.POST.get("email") # 獲取郵箱
 mobile = request.POST.get("mobile") # 獲取手機號碼
 # 把資料新增到字典中
 rongou = {"username":username,"sex":sex,"email":email,"mobile":mobile}
 # # 把字典新增到列表中
 list_user.append(rongou)
 return render(request,"rongou.html",{"list":list_user})
因為前端會涉及到一個csrf的跨域,要在配置檔案中setting.py,把csrf註釋(後期再講怎麼執行請求跨域)

關閉csrf中介軟體

前端頁面

 

用django的資料庫

django會自帶資料庫,為sqlite3的資料庫(預設)

class userInfo(models.Model):
 """
 建立模型類
 """
 username = models.CharField(max_length=64)
 sex = models.CharField(max_length=64)
 email = models.CharField(max_length=64)
 mobile = models.CharField(max_length=64)
ps:後期詳細講模型類 
資料庫遷移 :python manage.py makemigrations 在執行 python manage.py migrate

資料庫儲存前端資料,並渲染到前端

def indexs(request):
 # 校驗提交方式
 if request.method == "POST":
 username = request.POST.get("username") # 獲取使用者名稱
 sex = request.POST.get("sex") # 獲取性別
 email = request.POST.get("email") # 獲取郵箱
 mobile = request.POST.get("mobile") # 獲取手機號碼

 # # 把資料新增到字典中
 # rongou = {"username":username,"sex":sex,"email":email,"mobile":mobile}
 # # 把字典新增到列表中
 # list_user.append(rongou)
 # return render(request,"rongou.html",{"list":list_user})

 # 把資料插入資料庫
 models.userInfo.objects.create(
 username=username, # 使用者名稱
 sex=sex, # 性別
 email=email, # 郵箱
 mobile=mobile # 手機號
 )
 # 從資料庫獲取資料進行渲染 all()獲取全部
 list = models.userInfo.objects.all()
 return render(request, "rongou.html",{"list": list})

資料庫資料

看程式碼沉浮,誰輪人生,初識django結束