清明節(jié)假期皇钞,正是讀書酱畅、學習的好時候;別人都出去玩了,然而我仍然在“學習”夯巷。之前一直對Django很感興趣(因為很多人提到了它赛惩,而我也有打算在未來用Python重構(gòu)PHP做的系統(tǒng)),因此就學習了一下
創(chuàng)建新的項目
django-admin.py startproject my_project
創(chuàng)建新的App
# 在Django項目(my_project)的根目錄下執(zhí)行
python3 manage.py startapp my_app
啟動Django中的開發(fā)服務器
# make new migrations
python3 manage.py makemigrations
# apply all migrations
python3 manage.py migrate
# run server
python3 manage.py runserver
創(chuàng)建models
class App1(models.Model):
title = models.CharField(max_length=100)
category = models.CharField(max_length=50, blank=True)
date_time = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.title
class Meta:
ordering = ['-date_time']
進入Django中的交互式shell
python3 manage.py shell
from app1.models import App1
# create(增加操作)
App1.objects.create(title='title',category='category1')
# all和get(查看操作)
App1.objects.all()
App1.objects.get(id=1)
# update(修改操作)
demo = App1.objects.get(id=1)
demo.title
demo.title='title2'
# delete(刪除操作)
demo.delete()
創(chuàng)建一個超級用戶
python3 manage.py createsuperuser
# 輸入http://127.0.0.1:8000/admin登錄后臺
數(shù)據(jù)庫信息的增加和刪除趁餐,admin.py中增加代碼
from article.models import App1
admin.site.register(App1)
Views和URL操作
# views.py
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello World, Django")
# urls.py
url(r'^$', 'app1.views.home')
URL傳參
# views.py
def detail(request, number):
return HttpResponse("The number is %s." % number)
# urls.py
url(r'^([0-9]+)/', 'app1.views.detail', name='detail')
URL傳參查詢數(shù)據(jù)庫
# views.py
def database(request, args):
post = App1.objects.all()[int(args)]
str = ("title = %s, category = %s, date_time = %s" % (post.title, post.category, post.date_time))
return HttpResponse(str)
# urls.py
url(r'^id/([0-9])+/', 'article.views.database', name='database'),
將代碼上傳到Github
# 在github中新建倉庫django-blog
# 在項目根目錄下執(zhí)行
git init
git remote add Django
git@github.com:ybbz/django-blog.git
git add .
git status
git commit -m "django blog init"
git pull Django master && git push Django master
Error: That port is already in use.
ps aux | grep -i manage
kill -9 ****
python3 manage.py runserver