Djangoä¹views
ä¸ URLè¡¥å
äº Viewsè¯å¾å½æ°
ä¸ URLè¡¥å
1 MTV模å
2 djangoå»ºç«æµç¨ï¼ç¨å½ä»¤çï¼
ï¼1ï¼django-admin startproject projectname
ï¼2ï¼python manage.py startapp appname
ï¼3ï¼python manage.py runserver IP PORT
3 urlé ç½®ï¼urls.pyï¼
åè½ï¼å»ºç«èµ·URLä¸è§å¾å½æ°çæ å°å ³ç³»ã
url:http://127.0.0.1:8080/blog/articles/2003/05?a=1&b=2
url(æ£å表达å¼(è§å)ï¼è§å¾å½æ°) å¹é å符串ï¼ç¨æ·è¾å ¥çurl对åºçè·¯å¾ï¼â/blog/articles/2003/05â
注æç¹ï¼
(1) åºç°è¦çç°è±¡çæ
åµï¼å¹é
第ä¸ä¸ªurl
(2) æ ååç» url(r'^articles/(\d{4})/(\d{2})$', views.year_month), # year(requset,1990,12) æä½ç½®ä¼ åæ°
(3) æååç» url(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})$', views.year_month), # year (requset,year=1990,month=12) æä½ç½®ä¼ åæ°
(4) url(r'^blog/', include('blog.urls'))åå
åå¼ï¼request.POST.get("user")
è·åform表åæäº¤çæ¹æ³ï¼request.method=="POST"
æreturn å°±ä¸å¾ä¸èµ° å¯ä»¥å»æelse
模æ¿è¯æ³ä¸¤ç§{{}}
渲æäºååå¾å端å render 彿° render彿°å¯ä»¥æ£æµæ¨¡æ¿è¯æ³
ç¹å»æäº¤ èµ°url èµ°views èµ°render彿°æ¥çæ¸²ææ¨¡æ¿ï¼çææ å«åï¼ åå¾å端
äº è§å¾å½æ°
ä¸å®å å«ä¸¤ä¸ªå¯¹è±¡
request------->ï¼è¯·æ±ä¿¡æ¯
HttpResponse------->ååºå
容
render ä¸ä¸ªHttpResponse彿°ä¹åå¨render彿°é
get 请æ±çæ°æ®æ¾å¨è·¯å¾åé¢
éç¹ request éé¢çåªäºä¿¡æ¯ï¼
request.GET:GET请æ±çæ°æ®ï¼ï¼
request.POST:POST请æ±çæ°æ®ï¼ï¼
request.method:è¯·æ±æ°æ®çæ¹å¼ï¼ï¼ä¸»è¦getæè
post
request.path:请æ±è·¯å¾ï¼ï¼ä¸æ°æ®æ å
³
æ ¹ç®å½ ï¼/ï¼å¤ææ ¹ç®å½ï¼
request.get_full_path()æ¿å°è·¯å¾å颿æçæ°æ®(å
æ¬è·¯å¾)
åä¸ä¸ªé®ä¸çå¤ä¸ªå¼ï¼request.POST.getlist("hobby")
render 彿° render(request, template_name[, context]ï¼ ç¬¬ä¸ä¸ªåæ°æ¯ä¸ä¸æå¯¹è±¡
redirect 彿°
å¯¹æ¯ renderä¸redirect çåºå«ï¼
redirectï¼åéç¬¬äºæ¬¡è¯·æ±ï¼urlæ´æ°å¦
renderï¼ ç´æ¥è¿åä¸ä¸ªé¡µé¢å
容使¯url没æååï¼æªåéç¬¬äºæ¬¡è¯·æ±ï¼ï¼æ¶å页é¢è·³è½¬æ¶ä¸ç¨ï¼
ä¸ä¸ªå°ä¾åï¼æ³¨ï¼è·³è½¬æ¯ååé½è¦å / ï¼è¿åæ¶ä¸ç¨å / å¾çç¨å°äºåå ä¾åéæ²¡æç¨å°åå
---Model
from django.db import models # Create your models here. import pymysql conn = pymysql.connect(host='', port=3306, user='root', passwd='', db='day66') cur = conn.cursor() cur.executemany("insert into userinfo values(%s,%s)", [( "yuan", "123"), ( "alex", "456"), ("egon", "789")]) conn.commit() #å ³éæé对象 cur.close() #å ³éè¿æ¥å¯¹è±¡ conn.close()
---views
from django.shortcuts import render,HttpResponse,redirect # Create your views here. def login(request): print(request.POST) # è¿ä¸ªæ¯è·åform表åçæäº¤æ¹æ³ if request.method=="POST": print(request.POST)#è¿ä¸ªæ¯è·åform表åçæäº¤æ¹æ³ username=request.POST.get("user") password=request.POST.get("pwd") if username=="frank" and password=="789": return redirect("/index.html/")#跳转å°ä¸ªäººä¸»é¡µ # else:#else å¯ä»¥å»æå¦ # name="frank" return render(request, "login.html") def register(request): if request.method=="POST": username=request.POST.get("user") password=request.POST.get("pwd") # hobby=request.POST.getlist("hobby")#ä¸ä¸ªé®è·å¾å¤ä¸ªå¼æ¶ç¨è¿ç§æ¹æ³ import pymysql conn = pymysql.connect(host='', port=3306, user='root', passwd='', db='day66') cur = conn.cursor() SQL = "insert into userinfo (name,pwd)values(%s,%s)"; rows = cur.execute(SQL,(username, password)) conn.commit() print (rows)#è¿åå½±åçè¡æ° if rows : cur.close() conn.close() return redirect("/login.html/") else: return render(request,"register.html") def index(request): name="frank"#åæ»äº return render(request,"index.html",{"n":name})#å¯ä»¥ä½¿ç¨sessionå¾å°
Template
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Title</title> <style> .cc{ margin-left: 250px; margin-top: 200px; } </style> </head> <body> <div class="cc"> <h1>注å页é¢</h1> <form action="{% url 'register' %}" method="post"> <p> å§åï¼<input type="text" name="user"></p> <p> å¯ç ï¼<input type="password" name="pwd"></p> <!--<p> ç±å¥½ï¼--> <!--<input type="checkbox" name="hobby" value="basketball">篮ç--> <!--<input type="checkbox" name="hobby" value="shuangseqiu ">åè²ç--> <!--<input type="checkbox" name="hobby" value="football">è¶³ç--> <!--</p>--> <p><input type="submit"></p></div> </form> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Title</title> <style> .cc{ margin-top: 200px; margin-left: 300px; } </style> </head> <body> <div class="cc"> <h1>ç»é页é¢</h1> <form action="{% url "login" %}" method="post"> <p>å§åï¼<input type="text" name="user"></p> <p>å¯ç ï¼<input type="password" name="pwd"></p> <p><input type="submit"></p> </form> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Title</title> <style> .cc{ margin-right: 200px; } </style> </head> <body> <div class="cc"> <h1>hello{{ n }} </h1> <h1>欢è¿åæ¥</h1> </div> </body> </html>