Django学习笔记02
来源:互联网 发布:深圳赛维网络招聘 编辑:程序博客网 时间:2024/05/16 08:31
#系统win7 python3.4 django1.9
#创建一个较为完整的Django博客
1、创建django项目:
首先进入dos界面,切换到想要创建Django项目的路径,我这里是 ,E:\mydjango,运行命令:django-admin startproject myblog03
创建好之后,出现myblog03文件:
2、创建好项目后,接着创建APP。首先在dos中切换到刚才创建的myblog03文件路径下,在运行命令:python manage.py startapp blog。创建成功后出现blog文件:
创建好之后,出现blog文件:
3、设置settings.py文件,创建blog后,要使用,需要将他注册到settings.py文件中,修改settings.py文件,在INSTALLED_APPS中添加blog:
4、创建后台模型:打开blog文件下models.py 文件,添加代码:from django.db import models# Create your models here.class Blog(models.Model): title=models.CharField('标题',max_length=32) author=models.CharField('作者',max_length=16) content=models.TextField('内容') pub=models.DateField('发布时间',auto_now_add=True) class Meta: verbose_name="博客" verbose_name_plural=verbose_name def __str__(self): return self.title5、修改blog文件下admin.py文件,注册models.py中的Blog设置:
from django.contrib import adminfrom blog.models import *# Register your models here.class BlogAdmin(admin.ModelAdmin): list_display = ('title','author','pub')admin.site.register(Blog,BlogAdmin)6、同步更改数据库表或字段(这里使用Django默认的数据表),运行命令:
python manage.py makemigrations,python manage.py migrate
7、创建后台管理员,运行命令:python manage.py createsuperuser
8、运行命令:python manage.py runserver,启动Django
9、进入后台,将网址:http://127.0.0.1:8000/admin,复制到浏览器,输入刚才创建的账号密码,进入后台:
8、点击博客,随便创建一篇文章,如图;此时无法访问到这篇文章。
9、配置视图文件,修改blog下views.py 文件
from django.shortcuts import render,render_to_responsefrom blog.models import *# Create your views here.def index(request):blogs=Blog.objects.all().order_by('-pub')return render_to_response('index.html',{'blogs':blogs})10、创建index.html文件,首先在blog下建立templates文件,再在templates文件中创建index.html,写入代码:
<!doctype html><html><head><title>我的django测试</title></head><body>{% for blog in blogs %}<p>{{blog.title}}</p><p>{{blog.author}}</p><p>{{blog.content | truncatechars:50}}</p><!--限制展示字数为50字-->{% endfor %}</body></html>这里的html代码只是做展示,没有去写css等
访问链接:http://127.0.0.1:8000/blog
这里能展示所有的博客,但是如果想要进入到具体的某一篇博客,查看完整的内容,还需要在配置路由与视图。
11、再次配置视图文件,修改blog下views.py文件
from django.shortcuts import render,render_to_responsefrom blog.models import *from django.http import HttpResponse,Http404# Create your views here.def index(request):blogs=Blog.objects.all().order_by('-pub')return render_to_response('index.html',{'blogs':blogs})def detail(request,id): #参数由url传过来 try:blog = Blog.objects.get(id=id) #检查该博客是否存在 except Blog.DoesNotExist:raise Http404("该页面不存在")return render_to_response('blog_list.html',{'blog':blog}) #返回一个单独博客页面
12、再次配置路由:首先修改myblog03下的urls.py文件,修改代码:
from django.conf.urls import urlfrom django.contrib import adminfrom blog import viewsurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^blog/', include('blog.urls')),]
再在blog下新建urls.py文件,并添加代码:
#新新建的文件from django.conf.urls import urlfrom django.contrib import admin from blog import viewsurlpatterns=[url(r'^$', views.index, name='index'),url(r'^(?P<id>(\d+))/$', views.detail, name='detail'),]13、创建单独博客文章的html文件,在11步中,我将博客内容传递给了blog_list.html,因此我在blog下的templates文件中创建blog_list.html文件,写入代码:
<!doctype html><html><head><title>我的django测试</title></head><body><p>标题:{{blog.title}}</p><p>作者:{{blog.author}}</p><p>内容:{{blog.content}}</p></body></html>14、修改index中代码,实现点击标题后跳转到博客内容中,修改代码:
<!doctype html><html><head><title>我的django测试</title></head><body>{% for blog in blogs %}<p><a href="{% url 'detail' blog.id %}">标题:{{blog.title}}</a></p><!--插入了a标签--><p>作者:{{blog.author}}</p><p>简介:{{blog.content | truncatechars:50}}</p><!--限制展示字数为50字-->{% endfor %}</body></html>
修改完成后,刷新网页:http://127.0.0.1:8000/blog/,
有添加<a>标签的效果了,此时点击标题,就能跳转到相应的博客文章了:
总结:用Django创建简单的博客系统,实现后台管理和发布文章。
- Django学习笔记02
- Django学习笔记-初识Django
- python学习笔记(django入门02)
- Django学习笔记
- django学习笔记
- [学习笔记]Django安装
- Django 学习笔记
- Django学习笔记
- Django学习笔记
- django系统学习笔记
- Django学习笔记
- Django学习笔记
- Django学习笔记
- Django学习笔记(一)
- Django学习笔记(二)
- Django学习笔记(三)
- Django学习笔记(四)
- Django学习笔记(五)
- Ajax跨域--JsonP
- SDWebImage 源码阅读笔记
- sqoop 工具的使用
- thinkphp根据条件取得id值并更新个别字段的值
- 代理Proxy
- Django学习笔记02
- ASP.NET出现的shit问题总结
- 求逆序数
- Unity3d开发——保卫萝卜学习笔记一地图编辑器开发
- 排序(1)冒泡排序
- Hbase初探
- Ubuntu新增用户登录之后不能执行命令
- static字段初始化过程与静态内部类
- java多线程------实现多线程两种方式