django笔记
更新时间:2024-03-09 01:43:01 阅读量: 综合文库 文档下载
步骤
1.安装django框架 使用pip命令安装: sudo pip install Django
如果电脑没安装pip,则需要先安装pip,新版本的pip安装之后再使用pip命令可能会出现以下问题:
raiseReadTimeoutError(self._pool, None, 'Read timed out.') ReadTimeoutError:
HTTPSConnectionPool(host='pypi.python.org',
port=443): Read timed out.
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information,
see
https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
其实是SSL的问题,urllib3需要pyopenssl
解决方案:pip install pyopensslndg-httpsclient pyasn1 这一步之前还要安装两个依赖项 1.Ubuntu下安装
sudo apt-get install libffi-dev libssl-dev 2.CentOS下安装
yum install libffi-developenssl-devel
链接:Python 解决 InsecurePlatformWarning: A true SSLContext object is not available. 2.新建项目
以新建一个博客为例
先要新建一个工程,这里命名为mysite,这个工程下可以有很多个应用,后面我们会新建一个blog应用 django-admin.pystartprojectmysite
执行这条命令,就会在当前目录下新建一个项目,结构如下(最顶端的目录这里称为工程主目录): mysite
├── manage.py └──mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
urls.py ----- 负责把URL模式映射到应用程序。
2.运行开发服务器(从这里开始注意区分工程和应用这两个词) 切换到工程目录,执行运行服务器命令: python manage.py runserver
启动服务器后,通过浏览器访问127.0.0.1:8000/
出现上面的图片就是访问成功了 3.创建blog应用
在工程目录下执行这条命令:python manage.py startapp blog 那么在这个工程目录下就会新建一个名为blog的目录(在这里会称为应用目录),结构如下: ├── blog │├── admin.py │├── __init__.py │├── models.py │├── tests.py │└── views.py 4.设计你的Model
在blog目录(即应用目录)下的models.py是blog应用的核心文件之一,是定义blog数据结构的地方。 用编辑器打开models.py
新添加BlogPost类,代码如下: fromdjango.db import models # Create your models here. classBlogPost(models.Model):
title = models.CharField(max_length = 150) body = models.TextField()
timestamp = models.DateTimeField()
BlogPost类是django.db.models.Model的一个子类。它有变量title(blog的标题),body(blog的内容部分),timestamp(blog的发表时间)。 Model其实是与数据库相联系的,上面代码中model定义的成员变量对应着数据库相应的表中的各个字段 5.设置数据库
Django支持主流的数据库服务器(MySQL,PostgreSQL,Oracle和MSSQL),但这个例子使用SQLite,这里只通过一条简单的命令就可以创建SQLite数据库。
切换到工程主目录,执行如下命令: python manage.py syncdb
它会要求你新建一个用户,跟着要求设置一个账户和密码,这在后面后台管理员登录时会用到。 6.设置自动admin应用
这一步是方便你作为管理员在后台修改数据库对应的model的数据。 1)打开mysite/mysite/urls.py,确保urlpattens的列表里有这样一个元素,
url(r'^admin/', include(admin.site.urls))
接着修改mysite/blog/models.py,修改后的代码如下: fromdjango.db import models fromdjango.contrib import admin # Create your models here. classBlogPost(models.Model):
title = models.CharField(max_length = 150) body = models.TextField()
timestamp = models.DateTimeField() admin.site.register(BlogPost)
2)编辑mysite/mysite/settings.py,在INSTALLED_APPS里面添加blog应用,即添加’blog’字符串(和要添加的应用名字相对应)。 注意:不管添不添加到admin,每新建一个应用,都要在settings.py的INSTALLED_APPS列表里添加这个应用,不然在后面开发应用的时候会出现一些诸如找不到模板之类的错误。
3)打开浏览器,输入http://127.0.0.1:8000/admin/,输入刚才创建数
据库时候填写的帐号就能进入admin界面。
4)进入admin界面之后你会看到BlogPost应用,点击进入
接着点击add按钮你就可以方便地为你新建的model的各个字段赋值。
注意:添加model并保存之后可能会出现下面这样的问题
就是no such table的问题 解决方案:
在工程主目录下执行命令: python manage.py makemigrations python manage.py migrate
然后刷新网页,重新提交请求就行了 每次改动模型之后都要执行上述两条命令 链接:Django: OperationalError no such table
7.建立Blog的公共部分
从Django的角度看,一个页面具有三个典型的组件:
1)一个模板(template):具体对应应用目录下的templates目录,
模板负责把传递进来的信息显示出来。
2)一个视图(view):具体指应用目录下的views.py文件,文件中可以定义有关的视图函数,负责接收表单上传的数据,处理数据,从数据库获取需要显示的信息,重定向到别的网页,模板或视图函数。 3)一个URL模式:这个是由工程目录和应用目录下的urls.py文件中的urlpatterns共同组合而成的,它负责把收到的请求和你的视图函数匹配,有时候也会向视图传递一些参数。
用户访问django应用的过程可以总结为:
首先在网址输入框输入一个url,程序通过将这个url与工程和应用目录下的urls.py文件中定义的urlspatterns一级级匹配,若匹配成功,则会调用对应的视图函数处理http请求,最后重定向到目标网页,呈现给用户。(url和视图函数的对应关系在应用目录下的urls.py文件里指定)
1)创建模板
在blog目录下建立template目录(mysite/blog/templates),创建模板文件archive.html,它的内容如下: {% for post in posts %}
{{ post.title }}
{{ post.timestamp }}
{{ post.body }}
{% endfor%}
2)创建一个视图函数
在app应用的目录下的view.py添加视图函数 fromdjango.shortcuts import render fromdjango.template import loader,Context fromdjango.http import HttpResponse fromblog.models import BlogPost # Create your views here. def archive(request): posts = BlogPost.objects.all()
t = loader.get_template(\ c = Context({'posts':posts})
returnHttpResponse(t.render(c))
posts = BlogPost.objects.all() :获取数据库里面所拥有BlogPost对象 t = loader.get_template(\:加载模板
c = Context({'posts':posts}):模板的渲染的数据是有一个字典类的对象Context提供,这里的是一对键值对。 3)创建一个URL模式
第一步,在mysite/mysite/urls.py里面urlpattens添加url(r'^blog/', include('blog.urls')),
第二步:在blog应用里面定义URL,创建一个urls.py
(mysite/blog/urls.py) fromdjango.conf.urls import * fromblog.views import archive
urlpatterns = patterns('', url(r'^$',archive), )
最后,在浏览器输入如下地址http://127.0.0.1:8000/blog/ 就可以访问到网页了
这个例子的model增加了一个图片(model.ImageField)的字段,其他字段还是没变的
上传图片并保存在服务器端:
上面的例子展示的图片是在admin后台上传的,接下来说明怎么写表单并上传图片
正在阅读:
django笔记03-09
范钦涛社团工作述职报告03-30
鲁教版_初中物理知识点总结05-05
P5 Exam Tips-ACCA考试P5高级业绩管理考试重点10-12
汉语言文学专业学士论文:柳青《创业史》的人物形象分析03-11
施工组织设计(文物保护,风险预测)06-15
广东电力设计院初步设计-热控部分-广东惠来电厂一期3、4号2×10004-29
易通贸易订单管理系统解决方案08-30
电视新闻专题节目的特点及发展趋势论文05-16
- 高一物理牛顿运动定律全套学习学案
- 水处理一级反渗透加还原剂亚硫酸氢钠后为什么ORP会升高
- 毕业设计(论文)-正文董家口 - 图文
- 荣盛酒店经营管理公司录用通知及入职承诺书II
- 第二讲 大学英语四级快速阅读技巧
- 质量管理体系文件(2015年委托第三方医药物流配送企业专用版本)
- 214071收款办法
- 苏轼对《文选》选文的评价
- 《诊断学基础B》1-8作业
- 广东省东莞市高一数学下学期期末教学质量检查试题
- 海南电网公司VIS推广应用管理办法
- 红星照耀中国习题
- 苏教版小学语文六年级上册期末复习资料之生字词整理
- 局域网组建与应用—王向东
- 税务稽查内部管理文书样式
- 环保社会实践调查表
- 九年级思品第一单元复习
- 2016年全国注册咨询工程师继续教育公路路线设计规范试卷
- 毕业设计-青岛港董家口港区防波堤设计
- 撞背锻炼方法与益处
- 笔记
- django
- 母爱的温度阅读理解及答案-范文word版(4页)
- 浅析刑事冤假错案的成因及防范
- 工程力学(机电一体化技术) - 习题集(含答案)
- PSY- RIGHT NOW音译歌词中文歌词罗马拼音歌词歌词翻译
- 河北中学2013年德育工作经验交流材料
- 中山大学南校区生活指南 - 图文
- 中级数据库系统工程师上午2018上半年及答案解析
- 行为规范教育主题班会教案-优秀word范文(4页)
- 毛概调查问卷
- 2019最新的伤感说说
- 六年级上册语文期中试卷的作文题目是什么
- 按照二十四字教学模式开展教学的体会
- 河北省新乐市第一中学 高中语文第5课荆轲刺秦王知识点整理
- 虎丘 风景名胜 地方志
- 幼儿园幼儿综合素质范文
- 交直流系统安装作业指导书
- 网页制作测试题及答案1
- 人力资源实习报告
- 九年级语文上册第1单元1沁园春雪同步练习新版新人教版
- 学校食堂食品安全应急预案