@yudesong
2017-02-19T05:02:21.000000Z
字数 4755
阅读 598
python django
[1] 项目创建
运行以下程序,用于在当前目录下创建项目my_blog
django-admin.py startproject my_blog
[2] 创建Django app
python manage.py startapp article
并在my_blog/my_blog/setting.py里面添加如下代码:
INSTALLED_APPS = [
...
'article', #这里填写的是APP的名称
]
[3] 运行程序
python manage.py runserver
[1] 创建Models
在my_blog/article/modles.py下编写如下代码:
frmo django.db import modlesclass Article(modles.Modle):title = modles.CharField(max_length = 100)category = modles.CharField(max_length = 50,blank = True)date_time = modles.DateTimeField(auto_now_add = True)content = modles.TextField(blank = True,null = True)def __unicode__(self):return self.titleclass Meta:ordering = ['-date_time']
[2] 同步数据库
python manage.py migrate
python manage.py makemigrations
python manage.py migrate
[3] 进入Django交互式shell
python manage.py shell
from article.models import ArticleArticle.objects.create(title = 'Hello World',category = 'Python',content = 'let us to make a simple dataBase opertion')Article.objects.create(title = 'Learn Django Blog',category = 'Python',content = 'Django Blog 学习')Article.objects.all()Article.objects.get(id = 1)first = Article.objects.get(id = 1)first.titlefirst.contentfirst.date_timefirst.content = 'Hello yudesong'first.delete()Article.objects.all()
[1] 创建超级用户
python manage.py createsuperuser
[2] 注册Modles
在my_blog/article/admin.py里面添如下代码,后刷新页面 http://127.0.0.1:8000/admin
from django.contrib import adminfrom article.models import Article# Register your models here.admin.site.register(Article)
[3] 使用第三方插件
安装
pip install bootstrap-admin
配置
在my_blog/my_blog/setting.py中修改INSTALLED_APPS
INSTALLED_APPS = ['bootstrap_admin', #一定要放在'django.contrib.admin'前面'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','article',]
[1] 简单Django Views 和URL
在my_blog/article/views.py编写简单逻辑
from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.def home(request):return HttpResponse("Hello World,Django");
在my_blog/my_blog/urls.py编写url映射
from django.conf.urls import url,includefrom django.contrib import adminfrom article import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^$',views.home),]
[2] Django Views 和URL更进一步
修改my_blog/article/views.py
from article.models import Articledef detail(request, my_args):post = Article.objects.all()[int(my_args)]str = ("title = %s, category = %s, date_time = %s, content = %s"% (post.title, post.category, post.date_time, post.content))return HttpResponse(str)
修改my_blog/my_blog/urls.py
url(r'^(\d+)/$', views.detail, name='detail'),
[1]在my_blog/article下添加文件夹templates并添加文件test.html
<!--在test.html文件夹下添加--><!DOCTYPE html><html><head><title>Just test template</title><style>body {background-color: red;}em {color: LightSeaGreen;}</style></head><body><h1>Hello World!</h1><strong>{{ current_time }}</strong></body></html>
[2]在my_blog/my_blog/setting.py设置templates的位置添加
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates').replace('\','/'),)
[3]在templates目录文件夹添加base.html
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content="A layout example that shows off a blog page with a list of posts."><title>Andrew Liu Blog</title><link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css"><link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/grids-responsive-min.css"><link rel="stylesheet" href="http://picturebag.qiniudn.com/blog.css"></head><body><div id="layout" class="pure-g"><div class="sidebar pure-u-1 pure-u-md-1-4"><div class="header"><h1 class="brand-title">Andrew Liu Blog</h1><h2 class="brand-tagline">雪忆 - Snow Memory</h2><nav class="nav"><ul class="nav-list"><li class="nav-item"><a class="pure-button" href="https://github.com/Andrew-liu">Github</a></li><li class="nav-item"><a class="pure-button" href="http://weibo.com/dinosaurliu">Weibo</a></li></ul></nav></div></div><div class="content pure-u-1 pure-u-md-3-4"><div>{% block content %}{% endblock %}<div class="footer"><div class="pure-menu pure-menu-horizontal pure-menu-open"><ul><li><a href="http://andrewliu.tk/about/">About Me</a></li><li><a href="http://twitter.com/yuilibrary/">Twitter</a></li><li><a href="http://github.com/yahoo/pure/">GitHub</a></li></ul></div></div></div></div></div></body></html>
home.html
{% extends "base.html" %}{% block content %}<div class="posts">{% for post in post_list %}<section class="post"><header class="post-header"><h2 class="post-title">{{ post.title }}</h2><p class="post-meta">Time: <a class="post-author" href="#">{{ post.date_time }}</a> <a class="post-category post-category-js" href="#">{{ post.category }}</a></p></header><div class="post-description"><p>{{ post.content }}</p></div></section>{% endfor %}</div><!-- /.blog-post -->{% endblock %}
[4]修改article/views.py中的home函数
def home(request):post_list = Article.objects.all() #获取全部的Article对象return render(request,'home.html',{'post_list':post_list})
[5]修改urls.py
url(r'^$',views.home),
[1]