安装:
1、https://www.djangoproject.com/查找最新版本
2、pip install Django==1.10.6安装Django
 
创建项目:
1、打开命令行,进入想要安置项目的目录,django-admin startproject myblog
manage.py:与项目进行交互的命令行工具集的入口;项目管理器;执行python manage.py可以查看所有命令,运行命令:python manage.py runserver(启动服务器,还可后面跟着端口号直接设定端口号,否则会默认8000)
wspi.py英文名(Python Web Server Getway Interface)中文名:Python服务器网关接口;是Python应用与Web服务器之间的接口
urls.py:URL配置文件
setting.py总配置文件 BASE_DIR:项目的根目录
SECRET_KEY:安全码
DEBUG=True/False
ALLOWED_HOSTS=[]里面可以输入允许外界访问的host,例如如果输入localhost,则不可以使用id进行访问
INSTALLED_APPS:已安装的应用,如果我们创建了应用需要手动写到这里面
ROOT_URLCONF:url的根文件
templates:模板的配置
databases:配置数据库,可以打开上面的链接查看如何配置
STATIC_URL:静态文件的地址
__init__.py:声明模块的文件,默认为空
创建应用:
1、打开命令行,进入项目中manage.py同级目录,命令行输入:python manage.py startapp blog
2、将‘blog’添加到INSTALLED_APPS中
应用目录介绍
migrations:数据移植模块,内容自动生成
admin.py:该后台应用管理系统配置
apps.py:该应用的一些配置,Django1.9以后自动生成
models.py:数据模型模块,使用ORM框架
test.py:自动化测试模块
view.py:执行响应的代码所在的模块,代码逻辑处理的主要地点,项目大部分代码都在这里编写
3、编写代码
4、配置urls.py
 
开发templates
1、在app的根目录下创建名为templates的目录,再建一个文件夹名称与模块名称相同
2、 在该文件夹下创建HTML文件
3、在views.py中返回return render(request, 'blog/index.html')
 
Models
ORM:对象关系映射
编写models
1、在应用根目录下创建models.py,并引入models模块
2、创建类,继承models.Model,该类即是一张数据表
3、在类中创建字段
如何创建字段:
字段即类里面的属性(变量):attr=models.CharField(max_length=64,title='title') 字段以及字段的可选参数可以参考https://docs.djangoproject.com/en/1.10/ref/models/fields/
生成数据表:
1、命令行进入manage.py同级目录
2、执行python manage.py makemigrations app名(可选,如果不写默认生成该项目下的所有应用都生成迁移)
3、再执行python manage.py migrate
查看数据表:
1、Django会自动在app/migrations/目录下生成移植文件
2、执行python manage.py sqlmigrate 应用名 文件id 查看sql语句
页面呈现数据:
后台步骤
1、views.py中import models
2、article=models.Article.objects.get(pk=1)主键为1的数据
3、 render(request,page,{'article':article})
前端步骤
1、模板可以直接使用对象以及对象的“.”操作{{article.title}}
 
Admin:
配置admin:python manage.py createsuperuser 创建超级用户,回车后设置用户名、邮箱、密码
修改setting.py里的LANGUAGE_CODE = 'zh_Hans'改成中文字体
配置应用
1、在应用下admin.py中引入自身的models模块(或模块中的类)
2、编辑admin.py:admin.site.register(models.Article)
3、修改数据默认显示的名称:在Article类下面添加一个方法,根据python的版本选择(python3):__str__(self)和(python2.7):__unicode__(self),方法里面return self.title
 
完善博客
博客页面设计:1、博客主页面;2、博客内容页面;3、博客撰写页面
博客主页面:1、文章标题列表,超链接;2、 发表博客按钮(超链接)
实现:views.py修改
def index(request):
articles=models.Artical.objects.all()
return render(request, 'blog/index.html',{'articles':articles})
index.html修改
<body>
<h1><a href="">新文章</a></h1>
{% for article in articles %}
<a href="">{{article.title}}</a>
<br/>
{% endfor %}
</body>
博客文章页面:1、标题;2、内容;3、修改文章按钮
在views.py中添加
def article_page(request, article_id):
article=models.Artical.objects.get(pk=article_id)
return render(request, 'blog/article_page.html', {'article': article})
然后添加模板article_page.xml
最后修改urls.py文件,添加url:url(r'^article/(?P<article_id>[0-9]+)$', views.article_page),其中:url正则中的祖名必须和参数名保持一致
Django模板中的超链接配置
超链接的目标地址:href后面是目标地址,template中可以用“{%url 'app_name:url_name' param%}”其中app_name和url_name都是在url中配置的
再配url:
url函数的名称参数根urls,写在include()的第二个参数位置,namespace='blog'
应用下则写在url()的第三个参数位置,name='article'
主要取决于是否使用include引用了另一个url配置文件
博客撰写界面:标题编辑栏、文章内容编辑区域、提交按钮
编辑响应函数:
使用request.POST['参数名']获取表单数据,models.Article.objects.creat(title,content)创建对象
在form的action中添加设置的URL
涉及POST方法提交表单的,前端页面应该加上:{%csrf_token%},防范跨站请求伪造
修改文章界面
通过article.id是否为0来判断编辑界面是新建还是修改
如果是修改最后需要,article.title=title article.content=content article.save()
 
templates过滤器
{{value|filter}}
例如:{{list_nums|length}}
过滤器可以叠加{{value|filter1|filter2|filter3|......}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Django入门与实践的更多相关文章

  1. Django入门与实践 17-26章总结

    Django入门与实践-第17章:保护视图 Django 有一个内置的视图装饰器 来避免它被未登录的用户访问: 现在如果用户没有登录,将被重定向到登录页面: 现在尝试登录,登录成功后,应用程序会跳转到 ...

  2. Django入门项目实践(下)

    5.设置应用程序的样式 安装django-bootstrap3. # untitled/untitled/settings.py # ··· INSTALLED_APPS = [ 'django.co ...

  3. Django入门项目实践(中)

    4.用户账户 4.1 让用户能够输入数据 添加新主题 # untitled/learning_logs/forms.py from django import forms from .models i ...

  4. Django入门项目实践(上)

    项目结构 1.建立项目 File -->> New Project... 第一个Location是项目所在的目录,第二个Location是项目独立的Python运行环境,我们称之为Virt ...

  5. Django入门与实践-第26章:个性化工具(完结)

    http://127.0.0.1:8000/boards/1/topics/62/reply/ 我觉得只添加内置的个性化(humanize)包就会很不错. 它包含一组为数据添加“人性化(human t ...

  6. django入门与实践 - 关于升级到django 3.7,三种模板超链接配置(编辑中)

    第一种方法: 在myblog/urls.py模块中: from django.contrib import admin from django.urls import path, include ur ...

  7. Django入门与实践-第14章:用户注册(完结)

    http://127.0.0.1:8000/signup/ django-admin startapp accounts INSTALLED_APPS = [ 'accounts', ] # mypr ...

  8. Django入门与实践-第13章:表单处理(完结)

    http://127.0.0.1:8000/boards/1/ http://127.0.0.1:8000/boards/2/ http://127.0.0.1:8000/boards/3/ http ...

  9. Django入门与实践-第12章:复用模板(完结)

    http://127.0.0.1:8000/http://127.0.0.1:8000/boards/1/http://127.0.0.1:8000/boards/2/http://127.0.0.1 ...

  10. Django入门与实践-第11章:URL 分发(完结)

    http://127.0.0.1:8000http://127.0.0.1:8000/boards/1/http://127.0.0.1:8000/boards/2/http://127.0.0.1: ...

随机推荐

  1. exec,eval

    一.什么是Exec语句 假如我们一串字符串里面有Python代码,这个时候,普通情况是会把这串代码作为字符串来输出的,而不会执行这段代码.如果此时,我们想执行这串字符串里面的python代码,使用Ex ...

  2. [Leetcode Week2]Sort Colors

    Sort Colors题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/sort-colors/description/ Description Give ...

  3. 中断处理函数中不用disable_irq而用disable_irq_nosync原因【转】

    转自:http://blog.csdn.net/beyondioi/article/details/9201695 今天在写触摸屏驱动时在中断处理函数中使用disable_irq关中断发现在进入中断处 ...

  4. Android开发工具--AndroidStudio

    1.Android studio更改快捷键File->setttings  搜索key map就可以更改成自己喜欢的会计键风格了

  5. 病毒&烦人的幻灯片

    <病毒>传送门 <烦人的幻灯片>传送门 病毒 描述 有一天,小y突然发现自己的计算机感染了一种病毒!还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改 ...

  6. python中的yield生成器详解

    #原创,转载请先联系 在学习生成器之前,必须先了解一下迭代器.因为生成器就是一种特殊的迭代器,而且生成器用起来更加优雅. 迭代器的详解可以参考我的另一篇博文:https://www.cnblogs.c ...

  7. String、ANSIString、PChar及TBytes之间的转换 BytesOf move stringof

    一.string转为ansistring 1.直接赋值 (有警告)2.ansistring()类型强制转换.(无警告) 二.ansistring 转为string 1.直接赋值 (有警告)2.stri ...

  8. 《Java编程思想》笔记 第四章 控制执行流程

    1.true和false if--else if--else, while, do--while 都使用条件表达式的真假来决定执行路径. Java不允许数字作为真假判断,C和C++可以非0即真. 2. ...

  9. Python 解释器中方向键无法使用的解决方法

    如下: SyntaxError: invalid syntax >>> ^[[A File "<stdin>", line 1 ^ SyntaxErr ...

  10. AC日记——Andryusha and Colored Balloons codeforces 780c

    C - Andryusha and Colored Balloons 思路: 水题: 代码: #include <cstdio> #include <cstring> #inc ...