摘要:事實(shí)上,社區(qū)成員給了他一個(gè)榮譽(yù)稱號(hào)終生仁慈獨(dú)裁者。說(shuō)明圖片來(lái)源百度。安裝終端下或是在里面,命令相同。同步數(shù)據(jù)庫(kù)在終端中執(zhí)行此命令執(zhí)行完成后,會(huì)在下生產(chǎn)記錄變動(dòng)的記錄。此時(shí)數(shù)據(jù)庫(kù)并未變動(dòng),然后執(zhí)行這樣的變動(dòng),立即同步到數(shù)據(jù)庫(kù)中。
原文鏈接
1.準(zhǔn)備工作開(kāi)發(fā)環(huán)境:
python: 3.7.3 下載地址:https://www.python.org/downlo...
pip: pip3
Django: 2.2 下載地址: https://www.djangoproject.com...
PyCharm: 2017.2 下載地址:https://www.jetbrains.com/pyc...
1.Python: Python發(fā)源于八十年代后期。開(kāi)發(fā)者是Centrum Wiskunde & Informatica的Guido van Rossum,這是位于荷蘭阿姆斯特丹科學(xué)園區(qū)的一個(gè)數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究中心。之后Van Rossum一直是Python開(kāi)發(fā)很有影響的人物。事實(shí)上,社區(qū)成員給了他一個(gè)榮譽(yù)稱號(hào):終生仁慈獨(dú)裁者(BDFL)。
2.web框架介紹
web框架的概念就像建房子,地基、支撐柱、大梁的骨架還有其他沙石、地板等等材料已經(jīng)有了,
剩下的就是靠你自己組裝起來(lái)。猶如積木一樣。
說(shuō)明:圖片來(lái)源百度。
Django: Python代表性web框架,
遵循MMVC架構(gòu)模式的開(kāi)源框架。
它的名字來(lái)自Django Reinhardt,一個(gè)法國(guó)作曲家和吉他演奏家,很多人認(rèn)為他是歷史上最偉大的吉他演奏家。位于堪薩斯洲的Lawrence城的Lawrence Journal-World報(bào)社有兩位程序員,Adrian Holovaty和Simon Willison,他們?cè)?003的時(shí)候開(kāi)發(fā)出了Django,用于給報(bào)紙開(kāi)發(fā)web程序。
其他框架:tornado、flask、webpy
3.實(shí)例Python的和Pycharm的安裝忽略,安裝比較簡(jiǎn)單。
1.安裝Mac終端下:
$ pip3 install django # 或 pip3 install django==2.2
Windows是在cmd里面,命令相同。
2.創(chuàng)建項(xiàng)目打開(kāi)Pycharm,歡迎頁(yè)create project,然后
然后點(diǎn)擊create就可以了。
PS:創(chuàng)建項(xiàng)目也可以使用命令這里不做介紹.
django-admin createproject DjangoQuick django-admin startapp quick3.項(xiàng)目結(jié)構(gòu) 4.啟動(dòng)項(xiàng)目
Pycharm菜單欄
直接點(diǎn)擊運(yùn)行。或者左下角Terminal輸入python3 manage.py runserver
將會(huì)在瀏覽器看到
這樣表示項(xiàng)目已經(jīng)啟動(dòng)成功,但是我們沒(méi)有編寫(xiě)任何代碼,所以出現(xiàn)了默認(rèn)的錯(cuò)誤提示。
打開(kāi)quick目錄下的views.py,輸入一下內(nèi)容
from django.shortcuts import render from django.http import HttpResponse # 新添加 # Create your views here. # 新添加 def index(request): return HttpResponse("success")6.添加url
打開(kāi)DjangoQuick下的urls.py,修改如下:
from django.contrib import admin from django.urls import path from quick.views import index # 導(dǎo)入包 urlpatterns = [ path("admin/", admin.site.urls), path("", index) # 添加新的映射關(guān)系 ]
如果使用Pycharm的按鈕啟動(dòng)項(xiàng)目,需要點(diǎn)擊stop,重新運(yùn)行,如果在terminal中運(yùn)行項(xiàng)目,會(huì)自動(dòng)重啟。
然后刷新瀏覽器。
然后就會(huì)看到我們?cè)趘iews.py的index方法中的輸出。
在quick目錄新建templates目錄
然后右鍵-new-html file, 新建一個(gè)index.html文件
index.html
Title 這是一個(gè)html from:https://litets.com
修改views.py文件
from django.shortcuts import render def index(request): return render(request, "index.html")
重啟服務(wù)器,刷新瀏覽器將會(huì)看到
這是一個(gè)html from:https://litets.com8.靜態(tài)文件
上面我們已經(jīng)成功輸出了一段html代碼,并且成功展示。大家都知html的美化需要依靠css,
css寫(xiě)法有兩種:內(nèi)聯(lián)式和外聯(lián)式。內(nèi)聯(lián)就不用多說(shuō),直接寫(xiě)在html同文件里面就可以了,現(xiàn)在我們使用外聯(lián)文件改怎么辦呢?
在quick目錄下新建static/css/style.css文件。
.desc { color: red; }
然后修改index.html
{% load static %}Title 這是一個(gè)html from:https://litets.com
刷新瀏覽器,將會(huì)看到字變成紅色了。
修改index.html文件
{% if users %}這是一個(gè)html from:https://litets.com
序號(hào) | 用戶名 | 密碼 |
{{ forloop.counter }} | {{ user.username }} | {{ user.password }} |
views.py修改
from django.shortcuts import render def index(request): # 判斷是否是post請(qǐng)求 if request.method == "POST": # 獲取到請(qǐng)求參數(shù), username的寫(xiě)法,如果username不存在不會(huì)拋異常 # password 會(huì)拋異常 username = request.POST.get("username") password = request.POST["password"] # 業(yè)務(wù) 需求: users = [] for x in range(0,3): users.append( {"username": "%s-%d" % (username, x), "password": "%s-%d" % (password, x)} ) # 返回給用戶 模版中使用到的users就是這里傳遞進(jìn)去的 return render(request, template_name="index.html", context={ "users": users }) return render(request, "index.html")
這樣我們就實(shí)現(xiàn)了一個(gè)基本的網(wǎng)站了,但是有一個(gè)問(wèn)題,用戶傳遞過(guò)來(lái)的數(shù)據(jù)只是單次有效,無(wú)法持久化。
通常一個(gè)網(wǎng)站應(yīng)用到需要持久化數(shù)據(jù),比如文件、數(shù)據(jù)庫(kù)等。
我們打開(kāi)DjangoQuick目錄下的setting.py找到DATEBASES
默認(rèn)項(xiàng)目使用sqlite3最為數(shù)據(jù)庫(kù)。還支持 MySQL, PostgreSQL等
可用的引擎有:
"django.db.backends.sqlite3" "django.db.backends.postgresql" "django.db.backends.mysql" "django.db.backends.oracle"
Mysql的設(shè)置:
DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "test", # 數(shù)據(jù)庫(kù)名稱, "HOST": "localhost", # 主機(jī)地址 "USER": "user", # 數(shù)據(jù)庫(kù)用戶 "PASSWORD": "pwd", # 密碼 "PORT": 3306 # mysql的端口默認(rèn)3306 } }
這里我們使用默認(rèn)的sqlite3。
打開(kāi)quick下的models.py
from django.db import models class User(models.Model): username = models.CharField(max_length=25) password = models.CharField(max_length=18)
我們?cè)黾恿藘蓚€(gè)字段username和password,Django默認(rèn)支持orm。
同步數(shù)據(jù)庫(kù),在終端中執(zhí)行
$ python3 manage.py makemigrations
此命令執(zhí)行完成后,會(huì)在migrations下生產(chǎn)記錄models變動(dòng)的記錄。
此時(shí)數(shù)據(jù)庫(kù)并未變動(dòng),然后執(zhí)行
$ python3 manage.py migrate
這樣models的變動(dòng),立即同步到數(shù)據(jù)庫(kù)中。
修改views.py
from django.shortcuts import render from .models import User def index(request): # 判斷是否是post請(qǐng)求 if request.method == "POST": # 獲取到請(qǐng)求參數(shù), username的寫(xiě)法,如果username不存在不會(huì)拋異常 # password 會(huì)拋異常 username = request.POST.get("username") password = request.POST["password"] u = User(username=username, password=password) u.save() # 業(yè)務(wù) 需求:查詢出所有數(shù)據(jù) users = User.objects.all() # 返回給用戶 return render(request, template_name="index.html", context={ "users": users })
這樣添加用戶后就會(huì)持久報(bào)錯(cuò)了,即使關(guān)閉瀏覽器,重新訪問(wèn)數(shù)據(jù)也是存在的。
我們查看db.sqlite3文件查看里面的數(shù)據(jù)
原文鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/43613.html
摘要:慢慢要把域名域名轉(zhuǎn)走了。阿里云證書(shū)有免費(fèi)申請(qǐng)的途徑嗎阿里云網(wǎng)站的導(dǎo)航欄產(chǎn)品安域名解析教程域名解析的圖文教程域名解析教程域名解析的圖文教程是國(guó)外域名注冊(cè)商,是一家認(rèn)可的域名注冊(cè)和網(wǎng)站托管公司,近年來(lái)域名godaddy域名續(xù)費(fèi)貴怎么辦?godaddy真是坑爹,安全性不高,價(jià)格也越來(lái)越貴。以前的COM域名優(yōu)惠碼全部失效,好不容易找到一個(gè)優(yōu)惠碼,也比原來(lái)的要貴,比國(guó)內(nèi)的還是貴了,真是坑爹。慢慢要把g...
摘要:四服務(wù)器使用教程購(gòu)買完成后如何使用可以參考官方文檔阿里云服務(wù)器使用教程匯總云服務(wù)器使用也十分簡(jiǎn)單,以搭建網(wǎng)站為例,無(wú)非是配置環(huán)境自定義安全組等操作,參考官方文檔即可,從等都有,最后感謝大家對(duì)云吞鋪?zhàn)拥年P(guān)注。阿里云服務(wù)器購(gòu)買頁(yè)面云吞鋪?zhàn)诱J(rèn)為過(guò)于復(fù)雜,尤其是對(duì)于第一次購(gòu)買云服務(wù)器的新手來(lái)講,2019年了,思來(lái)想去云吞鋪?zhàn)記Q定寫(xiě)一篇服務(wù)器購(gòu)買流程的圖文教程: 阿里云服務(wù)器購(gòu)買流程 如何購(gòu)買ECS云...
摘要:超詳細(xì)虛擬機(jī)安裝圖文教程前兩天看到有人留言問(wèn)在什么情況下需要部署,我給的回答也很簡(jiǎn)單,就是在需要處理海量數(shù)據(jù)的時(shí)候才需要考慮部署。圖圖為虛擬機(jī)命名,如下圖,命名按照自己喜歡即可,點(diǎn)擊下一步進(jìn)行處理器配置。 超詳細(xì)Dkhadoop虛擬機(jī)安裝圖文教程前兩天看到有人留言問(wèn)在什么情況下需要部署hadoop,我給的回答也很簡(jiǎn)單,就是在需要處理海量數(shù)據(jù)的時(shí)候才需要考慮部署hadoop。關(guān)于這個(gè)問(wèn)題...
摘要:所以,本文中分享關(guān)于寶塔面板免費(fèi)防火墻安裝使用的圖文教程。在你寶塔面板軟件商店第三方應(yīng)用免費(fèi)防火墻,點(diǎn)擊立即購(gòu)買不用花錢(qián),再點(diǎn)擊安裝,確定安裝。注意免費(fèi)防火墻,和現(xiàn)有的的防火墻只能安裝一個(gè),支持系統(tǒng)烏班圖。寶塔Linux面板免費(fèi)nginx防火墻怎么樣?寶塔面板nginx免費(fèi)防火墻是寶塔服務(wù)器面板為用戶提供的免費(fèi)使用的網(wǎng)站防火墻,僅限于Nginx web服務(wù)器使用。 ? 眾所周知,國(guó)內(nèi)...
閱讀 2975·2021-11-16 11:45
閱讀 1725·2021-09-26 10:19
閱讀 2115·2021-09-13 10:28
閱讀 2891·2021-09-08 10:46
閱讀 1752·2021-09-07 10:13
閱讀 1593·2019-08-30 13:50
閱讀 1466·2019-08-30 11:17
閱讀 1521·2019-08-29 13:18