django开发博客(1) 入门

基于django的python实战博客系统开发 在Django中,表结构是通过模型(models)来设计的,而不是直接操作数据库表。Django的ORM(对象关系映射)允许你使用Python代码定义数据模型,然后由Django来处理与数据库的交互。项目中,需求驱动开发。即开发人员需要以需求为目标来实现业务逻辑。3 按着每一个功能分别进行开发。1 需求分析(产品经理) 阅读详情

现在正式开始博客开发

1、安装django1.4

如果你使用的是fedoraDVD版,安装时选择了web开发组建,这一步可以省略,因为它自带django环境

django下载地址 https://www.djangoproject.com/download/  这里我们选择最新版

然后在终端下打开下载目录

tar xzvf Django-*.tar.gz 。

cd Django-* 。

sudo python setup.py install

如果系同时window

解压后再控制台进入解压后的目录

python setup.py install


测试安装

打开Python的交互解释器

如果出现以下内容,安装成功!

>>> import django
>>> django.VERSION
(1, 4, 1, 'final', 0)

2、新建project

打开终端 输入

django-admin startproject blog

有些需要输入

django-admin.py startproject blog

你会发现主文件夹下多出一个目录 blog

目录结构为

blog/
    manage.py
    blog/
        __init__.py
        settings.py
        urls.py
        wsgi.py

manage.py :一种命令行工具,可让你以多种方式与该 Django 项目进行交互。 键入python manage.py help,看一下它能做什么。

__init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它

settings.py :该 Django 项目的设置或配置。 查看并理解这个文件中可用的设置类型及其默认值

urls.py:django项目的URL设置。 可视其为你的django网站的目录

wsgi.py: An entry-point for WSGI-compatible webservers to serve your project.See How to deploy with WSGI for more details.

具体使用方法参考 文档 https://docs.djangoproject.com/en/1.4/intro/tutorial01/

运行服务器

在终端打开项目目录 输入

python manage.py runserver
Validating models...

0 errors found
Django version 1.4.1, using settings 'blog.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

出现以上选项说明运行服务器成功

访问 http://127.0.0.1:8000/ 你将看到

django-code123-01

3、新建blogapp

在终端打开项目目录输入

python manage.py startapp sblog

现在新建好了一个名为sblog的博客应用

sblog/
    __init__.py
    models.py
    tests.py
    views.py

这个目录包含了这个app的模型和视图

4、models的配置

因为使用app必须用到数据库,现在我们配置一下数据库 打开setting.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/home/gs/blog/datas/mydata.db',  # 这里是我数据库文件存放的目录,你应该替换成你自己的.
        'USER': '',                       # Not used with sqlite3.
        'PASSWORD': '',                   # Not used with sqlite3.
        'HOST': '',                       # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                       # Set to empty string for default. Not used with sqlite3.
    }
}


因为python自带sqlite3,为了方便我们就直接使用。

其它数据库的配置参见 https://docs.djangoproject.com/en/1.4/ref/databases/

现在我们配置models.py

from django.db import models

class Tag(models.Model):
    """docstring for Tags"""
    tag_name = models.CharField(max_length=20, blank=True)
    create_time = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.tag_name

class Author(models.Model):
    """docstring for Author"""
    name = models.CharField(max_length=30)
    email = models.EmailField(blank=True)
    website = models.URLField(blank=True)

    def __unicode__(self):
        return u'%s' % (self.name)

class Blog(models.Model):
    """docstring for Blogs"""
    caption = models.CharField(max_length=50)
    author = models.ForeignKey(Author)
    tags = models.ManyToManyField(Tag, blank=True)
    content = models.TextField()
    publish_time = models.DateTimeField(auto_now_add=True)
    update_time = models.DateTimeField(auto_now=True)

    def __unicode__(self):
        return u'%s %s %s' % (self.caption, self.author, self.publish_time)


安装 models

首先修改setting.py

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    'django.contrib.admindocs',  
    'sblog',   
)


然后,用下面的命令对校验模型的有效性:

python manage.py validate

validate 命令检查你的模型的语法和逻辑是否正确。 如果一切正常,你会看到 0 errors found 消息。 如果有问题,它会给出非常有用的错误信息来帮助你 修正你的模型。

最后

python manage.py syncdb

你将看到类似与下面的内容

Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table sblog_tag
Creating table sblog_author
Creating table sblog_blog_tags
Creating table sblog_blog


因为我们修改setting.py时将

'django.contrib.admin',
'django.contrib.admindocs',

注释去掉了,所以在 执行

python manage.py syncdb
时会 出现You just installed Django's auth system, which means you don't have any superusers defined.

Would you like to create one now? (yes/no): 

让我们新建用户用于admin管理 ,创建用户就可以了

5、admin的配置使用
修改blog 目录下 urls.py
添加
from django.contrib import admin
admin.autodiscover()
在 patterns 添加 (如果一直没改过该文件的话 只要将这两行注释去掉就可以了)
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),

此时 打开 http://127.0.0.1:8000/admin/

就可以使用admin了,登录之后界面为:django-code123-02

如果你发现我们新建的sblog并没有出现,恭喜你,你有很强的观察能力,很细心,很。。。。

我还是接着说怎么用admin管理我们的sblog吧。

首先再sblog目录下新建admin.py 添加以下内容 再刷新admin页面 将会有惊喜哦

#!/usr/bin/python
# -*- coding: utf-8 -*-

from django.contrib import admin
from sblog.models import Author, Blog, Tag

class AuthorAdmin(admin.ModelAdmin):
    """docstring for AuthorAdmin"""
    list_display = ('name', 'email', 'website')
    search_fields = ('name',)

class BlogAdmin(admin.ModelAdmin):
    """docstring for BlogAdmin"""
    list_display = ('caption', 'id', 'author', 'publish_time')
    list_filter = ('publish_time',)
    date_hierarchy = 'publish_time'
    ordering = ('-publish_time',)
    filter_horizontal = ('tags',)
    # raw_id_fields = ('author',)  # 它是一个包含外键字段名称的元组,它包含的字段将被展现成`` 文本框`` ,而不再是`` 下拉框`` 。

admin.site.register(Author, AuthorAdmin)
admin.site.register(Blog, BlogAdmin)
admin.site.register(Tag)

其中 AuthorAdmin 和 BlogAdmin 是 自定义ModelAdmi类 用于自定义admin显示

list_display = ('caption', 'id', 'author', 'publish_time') 表示 按照 caption id author publish_time 显示 另外,点击每个列的列头可以对那列进行排序。

search_fields = ('name',) 刷新浏览器,你会在页面顶端看到一个查询栏。我们刚才所作的修改列表页面,添加了一个根据姓名查询的查询框

list_filter = ('publish_time',) 用于在右边生成一个过滤器,按照发表时间过滤

date_hierarchy = 'publish_time' 也是时间过滤器 修改好后,页面中的列表顶端会有一个逐层深入的导航条,它从可用的年份开始,然后逐层细分到月乃至日。

ordering = ('-publish_time',) 按照发表时间排序 默认是从前往后排序 加‘-’表示将最近发表的放到前面,从后往前倒序排列

filter_horizontal = ('tags',) 用于多对多字段显示,出现一个精巧的JavaScript过滤器,它允许你检索选项,然后将选中的tag从Available框移到Chosen框,还可以移回来

其它一些自定义方法参见文档吧 https://docs.djangoproject.com/en/1.4/ref/contrib/admin/

到现在为止,我们已经可以使用admin管理我们的博客

【Django博客开发】系列文章:


Django搭建个人博客-杜赛.pdf Django搭建个人博客-杜赛(来自于杜赛个人博客!) Django是一个由Python写成的开源Web应用框架,可以用它以更高的效率、更少的代码,搭建一个高性能的个人网站。 如果你以前从未接触过web开发,并且想快速上线自己的个性化网站,Django绝对是你的最佳选择。 本教程为零基础的小白准备,教你快速搭建一个自己的博客网站。 教程特点: 零基础、免费、中文、完整项目代码; 基于Python3.7、Django2.1、Bootstrap4; 博主热情的技术支持。 适合人群: 拥有一台能开机的电脑; 有一点基础的python编程知识; 每天能抽出一个小时学习。 立即下载

相关推荐

【tensorrt】——深入解析TypeError: pybind11::init()报错:CUDA版本冲突与解决方案

本文深入解析了TensorRT中常见的TypeError: pybind11::init()报错问题,重点探讨了CUDA版本冲突的根源与解决方案。通过实际案例展示了PyTorch与TensorRT的版本兼容性问题诊断方法,并提供了conda环境管理、环境变量配置等实用修复技巧,帮助开发者有效解决CUDA初始化失败问题。

ggg99的专栏 272

django搭建个人博客(一)

准备阶段 模块 功能 注册 图形验证、短信验证 登陆 状态保存、cookie、session 个人中心 图片上传、更新数据 发布博客 数据入库 博客首页 数据分页 博客详情 博客详情数据展示、评论工程 配置数据库MySQL 新建数据库 create database blog charset=utf8; 创建新用户 create user diangen identified by ‘123456’; 授权新用户的权限 grant all on blog.* to ‘

你怎么也喜欢嘴巴嘟嘟 4458

5G NR PDCCH实战解析:从DCI格式到CORESET配置的完整指南

本文深入解析5G NR PDCCH的实战配置,涵盖DCI格式选择、CORESET配置及Search Space优化等关键内容。基于3GPP R16标准,提供现网部署中的典型问题解决方案,如覆盖边缘失步、多用户调度冲突等,帮助提升控制信令传输效率。特别针对5G NR PDCCH的灵活资源分配和自适应编码机制进行详细探讨。

weixin_29231263的博客 501

Django(一)简单的个人博客搭建实战

前言 本章主要讲述基于Django框架上,搭建一个比较简单的个人博客 ps:觉得页面太丑了的话大家可以自己优化,前端没套框架直接用的原生css+html 我的审美止于此了 - - 环境: python 3.6 Pycharm 一、Django框架介绍 1、创建Django项目 直接在pycharm里新建一个Django项目即可 2、框架简要介绍 创建完后会自动生成Django的框架,那我们这part就简单介绍一下各个文件是干啥的 二、框架搭建 1、后台搭建 1.1)model.py

Mikasa的博客 5130

三轴加速度传感器计步算法优化:动态阈值与滤波技术的实践应用

本文深入探讨了三轴加速度传感器计步算法的优化实践,重点分析了动态阈值调整与高效滤波技术如何协同提升计步精度与鲁棒性。通过对比均值滤波的局限,引入向量模长计算、多级自适应阈值以及状态机判决逻辑,并结合代码示例,为嵌入式及移动应用开发者提供了应对复杂运动场景的实用解决方案。

cherry的博客 503

LaTeX参考文献格式apsrev4-1,增加文献标题

APS的LaTeX参考文献格式apsrev4-1是隐藏标题的,如果想要出现标题,需要更改apsrev4-1.bst文件内容 在apsrev4-1.bst文件靠后部分,定义不同类型文献格式的地方,将article类型的内容替换为, FUNCTION {article} { output.bibitem format.authors booktitle empty$ { "author" output.check }{ output } if$ author format.

loading1234567的博客 5032

django 简易博客开发:安装、创建、配置、admin使用

到现在位置项目实现的功能有:1、后台管理使用Admin ,前端显示使用bootstrap2、评论使用的系统自带comments 支持ajax3、支持markdown 代码高亮 使用markdown + Pygments4、使用的gravatar头像服务使用的环境: fedora 17 + django1.4 + python2.7 + sqlite3需要的模块支持: mark...

weixin_33721427的博客 206

基于Simulink的四足机器人楼梯攀爬仿真模型

构建一个基于Simulink的四足机器人楼梯攀爬仿真模型,旨在模拟四足机器人在面对楼梯等障碍时的运动控制和稳定性调整。以下是一个详细的步骤指南,帮助你从零开始创建这样一个仿真模型。

xiaoheshang_123的博客 247

Django搭建blog网站(一)

一、前言自学地址-->>>>>追梦人物博客:https://www.zmrenwu.com/post/2/1.1.环境python版本:3.6Django版本:1.11.61.2.预览效果最终搭建的blog的样子,基本上满足需求了。框架搭好了,至于CSS,可以根据自己喜好随意搭配。二、建立博客应用2.1.建立项目和应用创建工程blogprojectdjango-adm...

niepangu的专栏 9189

增距镜或中继镜选型

增距镜光路图

camerall 5248

5、高级综合技术:从调度到优化的全面解析

本文深入解析了高级综合技术,涵盖从控制/数据流图构建、调度算法、分配绑定策略到编译器优化的全流程。通过案例分析和对比,探讨了不同优化策略对性能和资源利用的影响,并总结了关键要点及未来发展趋势,为高效利用FPGA实现数字设计提供了全面指导。

night的博客 119

django开发个人博客系统

项目简介 运行平台:windows Python版本:3.4 Django版本:2.0 数据库工具:sqlite 开发工具:Pycharm+sublime-text 写在开头:这是我第一次使用Django进行web开发,在此之前并无任何web开发经验。其中,Django以及html/css都属于边学边用阶段,因此项目中可能出现一些粗糙的地方,读者可以自行规避。虽然本项目名为信息资源型系统,但是其实...

Ericam_ 4万+

国科大学习资料--高级软件工程-复习题概念解释答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题概念解释答案 1. 敏捷开发方法与Scrum方法 a.敏捷是一种强调轻量的过程方法论,它强调拥抱变化而不是与之对抗,通过有效的沟通发挥群体的智慧。敏捷方法采用迭代/增量开发的过程模型。敏捷宣言是:个体和交互高于流程和工具;工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。 虽然右边的也有价值,但是认为左边的更有价值。 b.Scrum(Schwaber和Beedle)是管理两个披萨规模(4-9人)的软件开发团队的方法,它高频率的短会

无名何许人的博客 1444

Django静态博客开发_1_入门

2019.5.28  电脑突然死机。。幸好自动保存,太棒了这功能 学习内容:Django入门:环境配置、基本指令、创建项目、创建app、目录介绍、Django视图、Django路由   三大框架比较:Django(使用量最大)、Flask、tornado   简介:开源,MCV,开发效率高,功能强大,重视安全   课程内容:课程准备工作(环境)、Django项目初体验、初识...

weixin_30384031的博客 82

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

探索Django 1.9:构建强大的博客系统

探索Django 1.9:构建强大的博客系统 项目介绍 Try Django 1.9 是一个由Team CFE开发的Django 1.9入门教程项目。通过创建一个简单但功能强大的Django博客,本项目旨在帮助初学者快速掌握Django 1.9的核心概念和基本操作。教程内容涵盖了Django的基础知识以及Django 1.9的特定功能,适合所有对Django感兴趣的开发者。 项目技术分析 Try ...

gitblog_00938的博客 794

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Django博客开发全攻略,算法入门:专题攻克主题一---双指针(1)移动零 复写零。

【代码】Django博客开发全攻略,算法入门:专题攻克主题一---双指针(1)移动零 复写零。

2501_93981558的博客 285

python web框架django Django搭博客?Python小白也能上手,别让框架吓破胆

数据观世界在接下来的教程中,我们将介绍使用Django Web框架搭建博客的过程。Django是一个用Python编写的框架,它能帮您使用P...

不忘初心,方得始终。不管前路如何艰难,只要心中有梦想,就有力量。 957

Python开发 Django和DRF框架 推荐部分B站视频

本文推荐了多个Django学习资源:千锋教育的Django4.2教程适合基础入门;B站2024版Django5教程时间短适合查漏补缺;墨落老师的37小时课程详细但耗时长。DRF框架推荐"一天搞定DRF"源码解析教程和墨落老师的详细课程。项目实战推荐java1234官方的权限系统和博客系统教程,但部分进阶内容需付费。建议初学者先看基础教程,再通过项目课巩固,最后用详细教程查漏补缺。

qq_59779173的博客 383

Django2.1新手图文入门教程

第一个django Web Django2.1新手图文入门教程 http://www.liujiangblog.com/blog/36/ 转载于:https://www.cnblogs.com/0526yao/p/10372096.html

weixin_30832351的博客 153

【django学习】——Django介绍和实战(开发简易版博客网页)

【django学习】——Django介绍和实战(开发简易版博客网页)

python_AI_fans的博客 8326

从0到1搭建个人博客—Django(一)

项目实战-使用Django搭建个人博客-(一)

阳寜的博客 2279

Django入门:基于 Django 的 Web 页面开发

本文通过手写一个最简单的博客网站来演示 Django 的 Web 开发。 演示: 功能要求: 具有文章列表页,文章详情页; 文章列表页点击文章可跳转到对应详情页; 文章列表页具有分页功能; 文章详细页具有上下文章跳转; 1、创建项目 使用 PyCharm 创建一个 DJango 项目。 指定路径之后,点击 create 创建项目。 创建完成之后的项目结构: 我们采用分模块开发,所以新建一个文章的模块,取名为article,在 Pycharm 下面找到终端程序,点击进去之后执行下面的命令: py.

WS的小屋 6729

基于django的个人博客开发

在django的基础上开发个人博客系统 ❤️ 这里只放了一个应用的相关操作方式想要整个项目包的可以QQ联系3626446438我会发你哦,当然有问题或者错误都可以评论找我们可以一起debug哦 ❤️ 1.配置相关环境开发利用python3.7以及navicate2.2效果较好,下载并为其配置相关环境变量 2.项目搭建 <1创建项目包myblog(可以用便捷方式在你创建的代码存储文件的目录框输入cmd调取本文件下的命令窗口输入admin startproject myblog回车将自动创建好项目包可以

m0_53644843的博客 1842
上一篇: 程序员面试中常见10大算法汇总
下一篇: Python爬虫框架Scrapy教程(1)—入门
King-23
博客等级 码龄11年 2粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值