鏍囩锛?a href='http://www.mamicode.com/so/1/object' title='object'>object -- 瀹屾垚 璁块棶 htm version user 鎵€鍦ㄥ湴 djang
Django妯″潡浣跨敤鏂规硶锛?span class="md-softbreak"> 1.鍏堜笅杞紻jango妯″潡锛?span class="md-softbreak"> 1.鍦ㄨ缃噷闈笅杞斤細 file-->settings-->project-->project interpreter-->鎼滅储Django ps:鍕鹃€塻pecify version 閫夐」閫夋嫨闇€瑕佸畨瑁呯殑Django鐗堟湰锛堟湰鐫€涓嶅畨瑁呮渶鏂扮増鏈殑鍘熷垯閫夋嫨1.11.11锛屾渶鏂扮増涓?.1锛?span class="md-softbreak"> 2.鍛戒护琛屼笅杞?span class="md-softbreak"> pip3 install django==1.11.11 楠岃瘉鏄惁瀹夎鎴愬姛浣跨敤鍛戒护锛?span class="md-softbreak"> Django-admin 2.鍒涘缓Django椤圭洰锛?span class="md-softbreak"> 1.鍛戒护琛岋細 Django-admin startproject 椤圭洰鍚嶇О 瀹屾垚鍚庡埛鏂板悗鍑虹幇锛?span class="md-softbreak"> init.py settings.py 鐢ㄦ埛鍙互杩涜閰嶇疆鐨勯厤缃枃浠?span class="md-softbreak"> urls.py wsgi.py manage.py 2. 鍙洿鎺ヤ娇鐢╬ycharm鍒涘缓Django椤圭洰 ps锛氫娇鐢ㄥ懡浠よ鍒涘缓椤圭洰鏄笉浼氳嚜鍔ㄧ┛浠秚emplates鏂囦欢澶癸紝涔熷氨鎰忓懗杩欐垜浠渶瑕佹墜鍔ㄥ湪閰嶇疆鏂囦欢涓皢杩欎釜璺緞 娣诲姞涓婏紝浣跨敤pycharm鍒欎笉闇€瑕?templates鏂囦欢閲岄潰閮芥槸html鏂囦欢
3.鍒涘缓app
鍛戒护琛岋細
绗竴绉?br /> django-admin startapp app鍚嶅瓧
绗簩绉?br /> python3 manag.py startapp app鍚嶅瓧
app鏂囦欢锛?br /> migrations鏂囦欢澶?span class="cm-tab"> 鏁版嵁搴撶殑鎿嶄綔璁板綍
__init__.py
apps.py 娉ㄥ唽APP鐩稿叧鏂囦欢
admin.py Django鍚庡彴绠$悊鐩稿叧
models.py orm妯″潡鐩稿叧鐨刾y鏂囦欢
views.py 瑙嗗浘鍑芥暟鐩稿叧鐨刾y鏂囦欢
tests.py 璋冭瘯鐩稿叧鐨刾y鏂囦欢
ps锛氬垱寤烘柊鐨刟pp涓€瀹氭槸闇€瑕佸湪settings涓殑INSTALLED_APPS鏂规硶娉ㄥ唽
娉ㄥ唽鏈変袱绉嶅啓娉曪細
1.‘app01’锛坅pp鍚嶇О锛?br /> 2."app01.apps.AppConfig"(app01鏄痑pp鍚嶇О)
app鐨勬蹇碉細
Django鐨勯」鐩氨褰撳仛涓€鐗囧湡鍦帮紝app灏辨槸鍦ㄥ湡鍦颁笂闈㈡墍寤虹珛鐨勫ぇ妤硷紝姣忎釜澶фゼ涔嬮棿閮芥湁鑷繁鐨勭嫭鏈夊姛鑳?br />?
4.鍚姩Django椤圭洰锛?br />?
python3 manage.py runserver django鐨勯粯璁ょ鍙e彿涓?000
5.Django蹇呴』鎺屾彙鐨勪笁涓柟娉曚篃灏辨槸涓変釜鍗曡瘝锛?br /> HttpRespomse 杩斿洖瀛楃涓?br /> render 杩斿洖鐨勬槸html椤甸潰
redirect 杩斿洖鐨勬槸閲嶅畾鍚?br />
6.闈欐€佹枃浠讹細
1.棣栧厛鎴戜滑闇€瑕佹槑鐧界殑鏄紝html鏂囦欢榛樿閮藉湪templates鏂囦欢澶逛笅闈?br /> 2.闈欐€佹枃浠讹細瀵逛簬宸茬粡鍐欏ソ鐨勬枃浠舵垜浠笉闇€瑕佽嚜宸卞啓鐨勬枃浠讹紝涔熷氨鏄嬁鏉ュ嵆鐢ㄧ殑閭d簺鏂囦欢锛屾垜浠О涔嬩负“闈欐€佹枃浠?rdquo;
绫讳技浜庯細
bootstrap 涔嬬被鐨勫墠绔鏋讹紝杩欎簺鏄凡缁忓啓濂界殑
鍥剧墖
js
css
闈欐€佹枃浠舵垜浠細榛樿鍒涘缓涓€涓悕涓簊tatic鐨勬枃浠跺す
ststic鏂囦欢澶逛腑鎴戜滑浼氶粯璁ゅ垱寤虹殑瀛愭枃澶癸細
css鏂囦欢澶?br /> js鏂囦欢澶?br /> img鏂囦欢澶?br /> 鍏朵粬锛堝墠绔殑妗嗘灦浠g爜锛岀涓夋柟鐨勬彃浠剁瓑绛夛級
`3.闈欐€佹枃浠剁殑閰嶇疆锛?br /> STATICFILES_DIRS = [
os.path.join(BASE_DIR,鈥榮tatic鈥?
]
`4.璁块棶闈欐€佹枃浠朵腑鐨勮祫婧愶細
STATIC_URL = 鈥?static/鈥? 杩欎釜鏃跺€欒繖涓猻tatic灏变笉鏄枃浠跺す鐨勫悕瀛楄€屾槸鎺ュ彛鐨勫墠缂€锛屼篃灏辨槸璇村彧瑕佹兂璁块棶闈欐€佹枃浠堕噷闈㈢殑璧勬簮灏卞繀椤诲姞杩欎釜鍓嶇紑
鍥犱负鐢ㄦ埛鍙互璁块棶鍒扮殑璧勬簮閮芥槸鍦╱rl涓紝鍙湁url涓瀹氱浉鍏崇殑璧勬簮鐢ㄦ埛鎵嶈兘璁块棶鍒帮紝鎵€浠ヨ锛岀敤鎴疯兘鎺ユ敹鍒颁粈涔堟牱鐨勮祫婧愰兘鏄渶瑕佽缃殑
鍔ㄦ€佽В鏋愰潤鎬佹枃浠舵帴鍙?鍒╃敤瑙f瀽鍣?鍔ㄦ€佽幏鍙栨帴鍙e墠缂€)锛?br /> {%load static%}
7.form琛ㄥ崟鎻愪氦鏁版嵁鐨勭洰鐨勫湴锛屼篃灏辨槸閫掍氦鏁版嵁鐨勫湴鍧€锛?br /> 1.form閫掍氦鏁版嵁鐨勫湴鍧€action鏉ユ帶鍒?br /> 2.涓夌濉啓鎯呭喌: 9. 鑾峰彇鍓嶇鏁版嵁锛?br /> 1.request.method鑾峰彇璇锋眰鐨勬柟娉?br /> 2.鏁版嵁鐨勫鐞嗭細 11.Django閲岄潰鐨勫璞″叧绯绘槧灏勶細 13. orm鎿嶄綔闇€瑕佷娇鐢╩odels涓殑绫诲悕瀛楋細 鏀癸細 鍓嶅悗绔敤鎴风殑澧炲垹鏀规煡锛?br /> 1.閫氳繃orm灞曠ず鎵€鏈夌殑鍒板墠绔?br /> all()
1:涓嶅啓鐨勬儏鍐?-->榛樿鍚戞湰鍦板湴鍧€鎻愪氦
2.鍙啓鍚庣紑/index/----> 鍍忔湰椤圭洰鐨勯〉闈㈡墍鍦ㄥ湴鍧€娣诲姞
3.杩樺彲浠ュ啓鍏ㄨ矾寰?br /> 8.瑙嗗浘鍑芥暟涓€鑸細棣栧厛澶勭悊get璇锋眰锛?br /> 瀹炰緥锛?br /> def login(request):
if request.method == "POST": # 浣跨敤request鐐规柟娉曡幏鍙栨槸鎻愪氦杩樻槸鑾峰彇
return HttpRespomse("浣庝环濂ョ壒姣?) # 濡傛灉鏃堕€掍氦鍙互鍋氬叾浠栫殑鍝嶅簲鎿嶄綔
return render(request,鈥榣ogin.html鈥? # 濡傛灉鏄幏鍙栬繑璐у鎴烽渶瑕佺殑椤甸潰鍜屾暟鎹€?/span>
ps锛氬鏁版嵁鐨勫鐞嗕笉鍏夋湁wsgiref妯″潡锛屾垜浠殑Django鍚庣涔熻繘琛屼簡鏁版嵁鐨勫鐞?br />
1.GET鏂规硶锛?br /> request.GET鏂规硶锛氬彲浠ヨ幏鍙栧墠绔痝et鎻愪氦鍒板悗绔殑鏁版嵁锛堣幏鍙栧埌鐨勬暟鎹被浼间竴涓ぇ瀛楀吀锛?br /> request.GET.get锛?lsquo;閿?rsquo;锛夎櫧鐒秜alue鏄竴涓垪琛?浣嗘槸榛樿鍙彇鍒楄〃鏈€鍚庝竴涓厓绱?br /> request.GET.getlist(鈥榟obby鈥? 鍙互鍚у垪琛ㄧ殑鏁版嵁鍏ㄩ儴鍙栧嚭
2.post
request.POST鑾峰彇鍓嶇鎻愪氦鐨刾ost鏁版嵁锛堜篃绫讳技涓€涓ぇ瀛楀吀锛?br /> 鍙栧€硷細
request.POST.get锛?lsquo;閿?rsquo;锛夎櫧鐒秜alue鏄竴涓垪琛?浣嗘槸榛樿鍙彇鍒楄〃鏈€鍚庝竴涓厓绱?br /> request.POST.getlist(鈥榟obby鈥? 鍙互鍚у垪琛ㄧ殑鏁版嵁鍏ㄩ儴鍙栧嚭
涓嶈繃涓嶅缓璁娇鐢ㄦ嫭鍙风殑鏂瑰紡鑾峰彇鏁版嵁锛屽洜涓哄鏋滄病鏈夋暟鎹細鎶ラ敊鐨?br /> 10.Django榛樿浣跨敤鐨勬暟鎹簱鏄嚜甯︾殑sqlite鏁版嵁搴擄紝濡傛灉瑕佽窡鎹㈡暟鎹簱闇€瑕佸湪srttings閰嶇疆鏂囦欢涓厤缃細
1.鍦╯ettings鏂囦欢涓厤缃?br /> DATABASES = {
default:{
鈥楨HGINE鈥?鈥榙jango.db.backends.mysql鈥?
鈥楴AME鈥? 鈥榙ay51鈥?
鈥楬OST鈥?鈥?27.0.0.1鈥?
鈥楶ORT鈥?3306,
鈥楿SER鈥?鈥榬oot鈥?
鈥楶ASSWORD鈥?鈥?23鈥?
鈥楥HARSET鈥?鈥榰tf8鈥?
}
}
?
2. 杩樿鍦ㄩ」鐩悕涓嬬殑init鏂囦欢鎴栬€呮槸搴旂敤鍚嶄笅鍦╥nit鏂囦欢涓缃笉璁〥jango浣跨敤榛樿鐨勬暟鎹簱锛岃€屾槸浣跨敤pymysql
import pymysql
pymysql.install_as_MySQL锛堬級
ORM:
琛?-------------->绫?br /> 涓€鏉℃潯鐨勮褰?-------------->瀵硅薄
瀛楁瀵瑰簲--------------->瀵硅薄鐨勫睘鎬?br />?
1.棣栧厛鎴戜滑闇€瑕佸湪models.py涓功鍐欐ā鍨嬬被
class User锛坢odels.Model锛?
username = models.CharField(max_length=32)
password = models.IntegerField()
ps:
娉ㄦ剰:鍙鍔ㄤ簡models涓窡鏁版嵁搴撶浉鍏崇殑浠g爜 灏卞繀椤婚噸鏂版墽琛屼笂闈㈢殑涓ゆ潯鍛戒护 缂轰竴涓嶅彲(******)
python3 manage.py makemigrations # 浠呬粎鏄湪灏忔湰鏈笂(migrations鏂囦欢澶?璁板綍鏁版嵁搴撶殑淇敼 骞朵笉浼氱洿鎺ユ搷浣滄暟鎹?br /> python3 manage.py migrate # 灏嗘暟鎹簱淇敼璁板綍 鐪熸鍚屾鍒版暟鎹簱
12.琛ㄥ瓧娈电殑澧炲垹鏀规煡锛?br />
澧烇細
褰撲竴寮犺〃宸茬粡鍒涘缓鍑烘潵涔嬪悗 鍚庣画杩樻兂娣诲姞瀛楁,鍙互鏈変袱绉嶆柟寮?br /> 1.缁欐柊澧炵殑瀛楁璁剧疆榛樿鍊?br /> addr = models.CharField(max_length=32,default=鈥楥hina鈥? # default璇ュ瓧娈甸粯璁ゅ€?br />?
2.缁欐柊澧炵殑瀛楁璁剧疆鎴愬彲浠ヤ负绌?br /> age = models.IntegerField(null=True) # 璇ュ瓧娈靛厑璁镐负绌?br /> 鍒狅細
鍒犻櫎瀛楁 鐩存帴鍦╩odels.py涓敞閲婅瀛楁 鐒跺悗閲嶆柊鎵ц涓ゆ潯鍛戒护鍗冲彲
娉ㄦ剰:鎵ц瀹屼箣鍚?琛ㄤ腑璇ュ瓧娈垫墍瀵瑰簲鐨勬墍鏈夌殑鏁版嵁鍏ㄩ儴鍒犻櫎
骞朵笖涓€鑸儏鍐典笅锛屽熀鏈槸涓嶄細鐢ㄥ埌鐪熸鎰忎箟涓婄殑鍒犻櫎
棣栧厛鎴戜滑闇€瑕佸湪models锛?br /> from app01锛坅pp鍚嶅瓧锛?import models
鏌ワ細
models.USER.objects.all() # 鑾峰彇鎵€鏈夋暟鎹?br /> 鍚岀瓑浜庯細select * from USER
models.USER.objects.get(鏉′欢) 鍚岀瓑浜?select *from user where id=1
get鏂规硶鍙互鐩存帴鎷垮埌鏁版嵁瀵硅薄鏈韩锛屽鏋滄暟鎹笉瀛樺湪鐨勬椂鍊欙紝浼氱洿鎺ユ姤閿欙紝鎵€浠ヨ繖涓笉鎺ㄨ崘浣跨敤
鎺ㄨ崘浣跨敤锛歠ilter杩囨护鐨勬剰鎬濓細
models.USER.objects.filter(鏉′欢 ) 鏉′欢鍙互鏀惧涓紝鍏崇郴涓篴nd
filter鎷垮埌鏄竴涓垪琛? filter鎿嶄綔鍏跺疄閮芥槸鎵归噺鎿嶄綔
濡傛灉filter缁撴灉鍒楄〃涓湁澶氫釜鏁版嵁 閭d箞浼氫竴娆℃€у叏閮ㄤ慨鏀?
绫讳技浜巉or寰幆涓€涓釜淇敼
鏂规煡璇㈡潯浠朵笉瀛樺湪鐨勬椂鍊欒繑鍥炵┖涔熷氨鏄痭one
models.USER.objects.filter(鏉′欢 锛?query 鍙互鎷垮埌浠栫殑sql璇彞锛屽彧鏈塹ueryset瀵硅薄鐨勬椂鍊欐墠鍙互浣跨敤
***filter鎷垮埌鐨勭粨鏋滃氨鏄竴涓猶uerySet瀵硅薄(浣犵幇鍦ㄥ彧闇€瑕佺煡閬揻ilter鎷垮埌鐨勭粨鏋滃氨鑳藉鐐筿uery鏌ョ湅sql璇彞)
querySet瀵硅薄 浣犲彲浠ュ惂瀹冨綋鍋氬垪琛ㄦ搷浣?鍙栧€间篃鍙互閫氳繃绱㈠紩鍙?querySet鍙敮鎸佹鏁扮储寮?涓嶆敮鎸佽礋鏁? 杩樻敮鎸佸垏鐗囨搷浣?鍒囧嚭鏉ョ殑缁撴灉杩樻槸涓€涓猶uerySet瀵硅薄)
浣嗘槸涓嶆帹鑽愯繖涔堝仛
user_obj = models.User.objects.filter(username=username).first() # 鎷垮垪琛ㄤ腑绗竴涓暟鎹璞?
澧烇細
1.create鏂规硶锛?br /> models.User.objects.create(username=username,password=password)
create鏂规硶鑳藉鏂板鏁版嵁 骞朵笖鏈変竴涓繑鍥炲€硷紝杩斿洖鍊煎氨鏄柊澧炵殑鏁版嵁瀵硅薄鏈韩
2. 鍒╃敤瀵硅薄锛?br /> user_obj = models.User(username=username,password=password)
user_obj.save()
鍒狅細
models.User.objects.filter(id=delete_id).delete() 鍚岀瓑浜? delete from user where id = delete_id;
1锛?br /> models.User.objects.filter(id=edit_id).update(username=username,password=password)
update user set username = username,password = password where id = edit_id
2锛氾紙涓嶆帹鑽愪娇鐢細锛?br /> edit_obj.username = username
edit_obj.password = password
edit_obj.save()
涓嶆帹鑽愪娇鐢ㄧ殑鍘熷洜锛氱浜岀鏂瑰紡浼氫粠澶村埌灏惧皢鎵€鏈夌殑瀛楁鍏ㄩ儴淇敼涓€閬? 鏁堢巼鏋佷綆
妯℃澘璇硶for寰幆
2.娣诲姞鏂板鎸夐挳 (鐢ㄦ埛鐨勬柊澧炴搷浣?
a鏍囩鐨刪ref鐩存帴瑙﹀彂鍚庣閫昏緫
create()
3.娣诲姞缂栬緫 鍒犻櫎鎸夐挳
缂栬緫
鍒犻櫎
鍒╃敤get璇锋眰鎼哄甫鍙傛暟鐨勭壒鐐? 鍦╱rl鐨勫悗闈㈣窡涓婂搴旀暟鎹殑id鍊?br /> request.GET.get()
濡傛灉鏄紪杈?
閲嶆柊娓叉煋涓€涓〉闈?灏嗙紪杈戝璞′紶閫掑埌鍓嶇
濡傛灉鏄垹闄?br /> 鐩存帴鍒╃敤filter(...).delete()