Django环境配置

Django安装

#安装最新版本的Django
$ pip install  django 
#或者指定安装版本
pip install -v django==1.7.1
  • 项目创建
    $ django-admin startproject my_blog
  • 建立Django app
    $ python manage.py startapp article
  • 运行程序
    $ python manage.py runserver

pip安装python模块权限报错解决
windows下pip安装python模块时报错总结 - 温柔易淡 - 博客园

pycharm运行django程序
配置: runserver 0.0.0.0:8000
参考:pycharm上运行django服务器端、以及创建app方法

diango使用mysql数据库

设置数据库
Django项目建成后, 默认设置了使用SQLite数据库, 在my_blog/my_blog/setting.py中可以查看和修改数据库设置:

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'csvt','USER': 'root','PASSWORD': 'root','HOST': '','PORT': '',}
}

同时要在init.py中写以下代码

import pymysql
pymysql.install_as_MySQLdb()

pymysql的安装

pip install PyMySQL

创建models
在my_blog/article/models.py下编写如下程序:

from django.db import models# Create your models here.
class Article(models.Model) :title = models.CharField(max_length = 100)  #博客题目category = models.CharField(max_length = 50, blank = True)  #博客标签date_time = models.DateTimeField(auto_now_add = True)  #博客日期content = models.TextField(blank = True, null = True)  #博客文章正文#python2使用__unicode__, python3使用__str__def __str__(self) :return self.titleclass Meta:  #按时间下降排序ordering = ['-date_time']

其中str(self) 函数Article对象要怎么表示自己, 一般系统默认使用 来表示对象, 通过这个函数可以告诉系统使用title字段来表示这个对象

  • CharField 用于存储字符串, max_length设置最大长度
  • TextField 用于存储大量文本
  • DateTimeField 用于存储时间, auto_now_add设置True表示自动设置对象增加时间

同步数据库

$ python manage.py makemigrations
$ python manage.py migrate

Django Shell
现在我们进入Django中的交互式shell来进行数据库的增删改查等操作

$ python manage.py shell
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  5 2014, 20:42:22)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
这里进入Django的shell和python内置的shell是非常类似的
>>> from article.models import Article
>>> #create数据库增加操作
>>> Article.objects.create(title = 'Hello World', category = 'Python', content = '我们来做一个简单的数据库增加操作')
<Article: Article object>
>>> Article.objects.create(title = 'Django Blog学习', category = 'Python', content = 'Django简单博客教程')
<Article: Article object>>>> #all和get的数据库查看操作
>>> Article.objects.all()  #查看全部对象, 返回一个列表, 无对象返回空list
[<Article: Article object>, <Article: Article object>]
>>> Article.objects.get(id = 1)  #返回符合条件的对象
<Article: Article object>>>> #update数据库修改操作
>>> first = Article.objects.get(id = 1)  #获取id = 1的对象
>>> first.title
'Hello World'
>>> first.date_time
datetime.datetime(2014, 12, 26, 13, 56, 48, 727425, tzinfo=<UTC>)
>>> first.content
'我们来做一个简单的数据库增加操作'
>>> first.category
'Python'
>>> first.content = 'Hello World, How are you'
>>> first.content  #再次查看是否修改成功, 修改操作就是点语法
'Hello World, How are you'>>> #delete数据库删除操作
>>> first.delete()
>>> Article.objects.all()  #此时可以看到只有一个对象了, 另一个对象已经被成功删除
[<Article: Article object>]  Blog.objects.all()  # 选择全部对象
Blog.objects.filter(caption='blogname')  # 使用 filter() 按博客题目过滤
Blog.objects.filter(caption='blogname', id="1") # 也可以多个条件
#上面是精确匹配 也可以包含性查询
Blog.objects.filter(caption__contains='blogname')Blog.objects.get(caption='blogname') # 获取单个对象 如果查询没有返回结果也会抛出异常#数据排序
Blog.objects.order_by("caption")
Blog.objects.order_by("-caption")  # 倒序#如果需要以多个字段为标准进行排序(第二个字段会在第一个字段的值相同的情况下被使用到),使用多个参数就可以了
Blog.objects.order_by("caption", "id")#连锁查询
Blog.objects.filter(caption__contains='blogname').order_by("-id")#限制返回的数据
Blog.objects.filter(caption__contains='blogname')[0]
Blog.objects.filter(caption__contains='blogname')[0:3]  # 可以进行类似于列表的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493921.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCAI2018演讲实录 | 蒲慕明:脑科学与类脑机器学习

来源&#xff1a;人工智能前沿讲习班摘要&#xff1a;7月28-29日&#xff0c;由中国人工智能学会和深圳市罗湖区人民政府共同主办&#xff0c;马上科普承办的“2018 中国人工智能大会&#xff08;CCAI 2018&#xff09;”完美收官。大会第二天下午&#xff0c;中科院神经科学所…

Django搭建简易博客

Django简易博客&#xff0c;主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markdown与代码高亮 归档&#xff0c;AboutME和标签分类 搜索与ReadMore RSS与分页 需要添加的安装包 pip i…

HDU 4619 Warm up 2 (多校)

题意&#xff1a;在网格里面给定了 横&#xff0c;竖 两种多米诺骨牌&#xff0c;同向的不可以覆盖&#xff0c;不同向的可以覆盖&#xff0c;问你最多去掉多少个有覆盖的多米诺&#xff0c;使得网格内剩余的多米诺骨牌最多 解题思路&#xff1a; 一.搜索 &#xff08;1&…

工业智联网: 基本概念、关键技术与核心应用

来源&#xff1a;王飞跃科学网博客作者&#xff1a;王飞跃, 张军, 张俊, 王晓摘要&#xff1a;本文首先阐述了工业网联技术的演化过程&#xff0c;重点讨论了工业智联网产生的技术和时代背景.然后探讨了工业智联网的基本概念、内涵与应用领域。本文详细介绍了工业智联网的关键技…

JDBC链接

//1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar Connection con null; Class.forName( "org.gjt.mm.mysql.Driver" );// 加载驱动程序 con DriverManager.getConnection( "jdbc:mysql://DbComputerNameOrIPAddr:3306/DatabaseName", UserNa…

KMP算法学习

kmp算法完成的任务是&#xff1a;给定两个字符串O和f&#xff0c;长度分别为n和m&#xff0c;判断f是否在O中出现&#xff0c;如果出现则返回出现的位置。常规方法是遍历a的每一个位置&#xff0c;然后从该位置开始和b进行匹配&#xff0c;但是这种方法的复杂度是O(nm)。kmp算法…

生命或可在星际间传播

来源&#xff1a;中国科学报去年&#xff0c;当一颗美式足球场大小的雪茄形天体Oumuamua进入太阳系时&#xff0c;它并非仅仅让人们第一次看到了一块星际岩石。根据一项新的研究&#xff0c;这也支持了太空岩石通过在遥远的恒星系统之间运送微生物&#xff0c;从而在星际间传播…

操作系统(二): 进程与线程

操作系统(二): 进程与线程 本章解读 进程管理是操作系统重点中的重点&#xff0c;涵盖了操作系统中大部分的知识和考点。其主要包括四部分&#xff1a;进程与线程&#xff0c;处理器调度&#xff0c;同步与互斥&#xff0c;死锁。所以我准备分四个部分来解释这四个模块。进程与…

Nature最新研究:超9000学者每5天发1篇论文,这些高产作家背后的科研圈

来源&#xff1a;悟空智能科技发论文发论文发论文……你有没有想过&#xff0c;假如你能够一周发一篇论文&#xff0c;这样坚持10年甚至20年&#xff0c;你能成为全球最高产的学者吗&#xff1f;答案可能吓你一跳&#xff1a;不能。不但不能&#xff0c;你甚至连全球前10000名都…

PHPCMS V9 按浏览次数排行调用文章

作者&#xff1a;匿名 来源&#xff1a;老者工作室 浏览&#xff1a;1841次 2011-6-22 14:59:05 字号&#xff1a;大 中 小[摘要]PHPCMS V9&#xff08;简称V9&#xff09;采用PHP5MYSQL做为技术基础进行开发。V9采用OOP&#xff08;面向对象&#xff09;方式进行基础运行框架…

Android之WebView学习

WebView常用方法 WebSettings 在使用WebView前我们都要进行相关的配置&#xff0c;常见的操作如下&#xff1a; WebSettings settings mWebView.getSettings();settings.setJavaScriptEnabled(true); //支持javascriptsettings.setUseWideViewPort(true); //设置webv…

跌宕中,特斯拉拿下上海工厂,给蔚来们留下不到两年窗口期

来源&#xff1a;网易智能昨日&#xff0c;特斯拉上海工厂尘埃落定。特斯拉与上海规划与国土资源管理局签订协议&#xff0c;以9.73亿人民币拿下上海临港约1297.32亩地建造汽车工厂。据悉&#xff0c;这是特斯拉在美国之外设立的首个超级工厂。根据特斯拉的规划&#xff0c;上海…

[SQL Server系] -- 存储过程

tet转载于:https://www.cnblogs.com/TangPro/p/3227466.html

2019科学突破奖揭晓 庄小威陈志坚许晨阳上榜

来源&#xff1a;科学网10月17日&#xff0c;科学突破奖&#xff08;Breakthrough Prize&#xff09;名单揭晓。总计2200万美元的奖金分别给了婴儿死亡主要遗传因素治疗、超分辨率成像、发现一种新型电子材料以及其他重大突破。华裔科学家庄小威、陈志坚、C. Frank Bennett 、A…

Android之IPC机制

Android IPC简介 任何一个操作系统都需要有相应的IPC机制&#xff0c;Linux上可以通过命名通道、共享内存、信号量等来进行进程间通信。Android系统不仅可以使用了Binder机制来实现IPC&#xff0c;还可以使用Socket实现任意两个终端之间的通信。 IPC基础概念介绍 (1)Seriali…

HTML5与原生APP之争胜负已出?

早在HTML5技术问世之时&#xff0c;有关网络应用与原生应用谁将成为移动终端霸主的问题&#xff0c;就曾引起过广泛的争论。时至今日&#xff0c;不仅关于二者孰强孰弱的争论已然平息&#xff0c;就连备受关注的移动互联网创业公司也大多是做原生APP的&#xff0c;未曾见过HTML…

5G 产业链:基站天线和小基站爆发潜力大

来源&#xff1a;国信证券5G宏基站数的翻倍增长及技术演进带来基站天线成倍增长空间。5G关键性能指标十倍的增长需要基站数翻倍增长以支撑。5G的三个关键的效率需求包括频谱利用效率、能耗效率和成本效率。具体来说&#xff0c;5G在频谱效率、能源效率和成本效率的提升需求在十…

操作系统之死锁

死锁的概念以及产生死锁的原因 一组进程中&#xff0c;每个进程都无限等待被该组进程中另一进程所占有的资源&#xff0c;因而永远无法得到的资源&#xff0c;这种现象称为进程死锁&#xff0c;这一组进程就称为死锁进程,如果死锁发生&#xff0c;会浪费大量系统资源&#xff…

dm365工作笔记20130731

今天把内核和照着博客http://zjbintsystem.blog.51cto.com/964211/768652配置了一遍不知道结果如何。 终于做完了&#xff0c;调通了。还是有成就的。下面把操作贴出来 l 在照博客修改的.config文件基础上&#xff1a;1.SPI没选2.选的tvp5150 注释掉了.c文件&#xff0…

2018全球最佳品牌Top25:时代巨变的一个缩影

来源&#xff1a;资本实验室10月15日&#xff0c;希尔斯控股正式向美国破产法院申请破产保护。这一消息传出&#xff0c;即引发了全球关注。作为19世纪八十年代末以邮购业务起家的零售商&#xff0c;希尔斯百货已经历一百多年的世事变化与市场风云&#xff0c;毫无疑问是美国零…