Django 基础博客的建立
来源:互联网 发布:dac 单片机 编辑:程序博客网 时间:2024/05/29 04:17
目录 1
set配置 1
建立项目应用模板2
URL 配置 2
博客页面构造 3
视图函数views 3
前台HTML 4
Index部分 4
article_page部分 5
edit_page 部分 5
启动命令 6
学习笔记:
Ps:编译环境:国产linux-deepin, Django Version 1.11.4 , 编辑器vim
目录文件作用
settings.py:项目配置。
urls.py:URL配置。
models.py:数据模块。
views.py:视图函数,执行响应模块。
django请求响应原理图:
目录
set配置
命令 hj@deepin:~/Desktop/huangjin/huangjin$ vim settings.py
代码
INSTALLED_APPS = [
'django.contrib.admin',s
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
建立项目应用模板
hj@deepin:~/Desktop$ django-admin startproject huangjin 建立名为huangjin项目
hj@deepin:~/Desktop$ python manage.py startapp blog 建立名为blog应用
hj@deepin:~/Desktop/huangjin/blog$ mkdir templates #模板
hj@deepin:~/Desktop/huangjin/blog/templates$ mkdir blog #避免多应用的同名HTML冲突创建一个以APP为名称的文件夹,将HTML文件放入到此文件夹下
hj@deepin:~/Desktop/huangjin/blog/templates/blog$ touch index.html
hj@deepin:~/Desktop/huangjin/blog/templates/blog$ touch article_page.html
hj@deepin:~/Desktop/huangjin/blog/templates/blog$ touch edit_page.html
Ps :indexhtml 文章主界面 article_page.html 文章内容页面 edit_page.html 编辑业面
URL 配置
在根目录urls.py中引入include ,在APP目录下创建/复制urls.py的同名文件,格式与个人那个目录下的urls.py相同
命令
hj@deepin:~/Desktop/huangjin/huangjin$ vim urls.py
代码
from django.conf.urls import url,include
from django.contrib import admin
from blog.views import index
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/',include('blog.urls',namespace='blog')),
]
命令
hj@deepin:~/Desktop/huangjin$ cp huangjin/urls.py blog/urls.py #复制
hj@deepin:~/Desktop/huangjin/blog$ vim urls.py
代码
from django.conf.urls import url,include
from django.contrib import admin
from blog.views import index
from . import views
urlpatterns = [
url(r'^index/$', index),
url(r'^article/(?P<article_id>[0-9]+)$',views.article_page,name='article_page'),
url(r'^edit/(?P<article_id>[0-9]+)$',views.edit_page, name='edit_page'),
url(r'^edit/action$',views.edit_action, name='edit_action'),
]
博客页面构造
主界面 Index.html 显示 新建、标题、内容三项
Django中model对应一张数据表,数据表以类的形式表现。在models.py中引入models模块创建类,继承models.Model. 在该类中创建数据表的字段
命令
hj@deepin:~/Desktop/huangjin/blog$ vim models.py
代码
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
# Create your models here.
class Article(models.Model):
title = models.CharField(max_length=32,default = 'Title')
content = models.TextField(null=True)
视图函数views
命令
hj@deepin:~/Desktop/huangjin/blog$ vim views.py
代码
from django.shortcuts import render
from . import models
from django.http import HttpResponse
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse
from . import models
# Create your views here.
def index(request):
articles=models.Article.objects.all()
return render(request, "blog/index.html",{'articles':articles})
def article_page(request,article_id):
article = models.Article.objects.get(pk=article_id)
return render(request,'blog/article_page.html',{'article':article})
def edit_page(request,article_id):
if str(article_id)== '0':
return render(request,'blog/edit_page.html')
article = models.Article.objects.get(pk=article_id)
return render(request,'blog/edit_page.html',{'article':article})
def edit_action(request):
title = request.POST.get('title','TITLE')
content = request.POST.get('content','CONTENT')
article_id = request.POST.get('article_id','0')
if article_id =='0':
models.Article.objects.create(title=title,content=content)
articles=models.Article.objects.all()
return render(request, "blog/index.html",{'articles':articles})
article = models.Article.objects.get(pk=article_id)
article.title=title
article.content=content
article.save()
return render(request,'blog/article_page.html',{'article':article})
前台HTML
Index部分
命令
hj@deepin:~/Desktop/huangjin/blog/templates/blog$ vim index.html
代码
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript">window.onscroll = function() { synchronizer.webViewScrolled(); }; </script>
<title>Title</title>
</head>
<body>
<h1><a href="{% url 'blog:edit_page' 0 %}">新文章</a></h1>
<br/>
{% for article in articles %}
<a href="{% url 'blog:article_page' article.id %}">{{article.title}}</a>
<br/>
{% endfor %}
</body>
</html>
article_page部分
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript">window.onscroll = function() { synchronizer.webViewScrolled(); }; </script>
<title>Article Page</title>
</head>
<body>
<h1>{{article.title}}</h1>
<br/>
<h3>{{article.content}}</h3>
<br/>
<br/>
<a href="{% url 'blog:edit_page' article.id %}">修改文章</a>
</body>
</html>
edit_page 部分
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript">window.onscroll = function() { synchronizer.webViewScrolled(); }; </script>
<title>Edit Page</title>
</head>
<body>
<form action="{% url 'blog:edit_action' %}" method="post">
{% csrf_token %}
<input type="hidden" name="article_id" value="{{article.id | default:'0'}}">
<label>文章标题
<input type="text" name="title" value="{{article.title}}" />
</label>
<br/>
<label>文章内容
<input type="text" name="content" value="{{article.content}}" />
</label>
<br/>
<input type="submit" value="提交">
</form>
</body>
</html>
启动命令
数据迁移命令:
hj@deepin:~/Desktop/huangjin$ python manage.py makemigrations
hj@deepin:~/Desktop/huangjin$ python manage.py migrate
运行django
hj@deepin:~/Desktop/huangjin$ python manage.py runserver
Over
Ps:主页地址:http://127.0.0.1:8000/blog/index/
目录结构
hj@deepin:~/Desktop$ tree huangjin/
huangjin/
├── blog
│ ├── admin.py
│ ├── admin.pyc
│ ├── apps.py
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0001_initial.pyc
│ │ ├── __init__.py
│ │ └── __init__.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── templates
│ │ └── blog
│ │ ├── article_page.html
│ │ ├── edit_page.html
│ │ └── index.html
│ ├── tests.py
│ ├── urls.py
│ ├── urls.pyc
│ ├── views.py
│ └── views.pyc
├── db.sqlite3
├── huangjin
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
└── manage.py
- Django 基础博客的建立
- django建立自己的工程
- 刚刚建立的博客
- 建立自己的博客
- 用Django写博客(二)建立管理后台
- Django开发博客(四)——建立文章列表
- Python学习——用Django建立一个博客
- Django实例----简单的博客
- Dragon 的博客建立了
- 我的CSDN博客建立。
- 我的博客建立成功
- 博客建立的第一天
- Hexo 建立你的博客
- Django 博客
- Django 博客
- Django 博客
- Django 博客
- Django 博客
- Spring之路-聊聊Bean装配
- Disqus评论框改造工程-Jekyll等静态博客实现Disqus代理访问
- Unity显示时间、电量和网络
- Sublime Text 3的众多帮手!!!!
- css3 tranform属性
- Django 基础博客的建立
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- 设计模式-工厂方法模式
- Oracle 自定义函数
- 加载一个类时,其内部类是否同时被加载?静态内部类单例模式
- 安卓在线看源码
- Hibernate----Web小应用
- 海量数据处理(面试题)
- MYSQL的事务处理功能