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
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註釋(後期再講怎麼執行請求跨域)
用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結束