
Django教程——01安装使用
在上面一篇文章里,介绍了安装Django的方法,这里说说连接数据库吧
这篇主要介绍踩的坑和解决办法
正常连接和初始化数据库的命令是
执行这个命令的时候,出现了如下报错
经过一段排查,是我配置数据库的时候,多嵌套了一层default,修改为如下即可
然后继续执行migrate时,会报如下错误
本机环境是mac电脑,按官方教程 *** 作的时候,发现安装mysqlclient的python包会依赖本机安装mysql或者mysql-client,但在装mysql和mysql-client的时候,发现一直报错。后面发现解决办法是,在settingspy文件里,加下如下代码,即改用pymsql连接即可。
或者在settingspy同目录的__init__py里加如上代码也可以
然后再执行python managepy migrate命令会发现表顺利创建。新增表,不影响原有库的其他表。
你要看错误提示啊,错误提示明明白白的告诉你了,你混合使用了tab键和空格。你要做的事情很简单,将tab键产生的缩进格式都用空格。你最好都用空格,在linux下你的tab还会死人的
再说清楚点就是将你modelspy里的
body=modelsTextField()这代码的缩进全换成空格缩进。我想可能还有其它地方也有类似这样的错误,慢慢修正吧
创建数据库
选择开始菜单中→程序→Management SQL Server 2008→SQL Server Management Studio命令,打开SQL Server Management Studio窗口,并使用Windows或 SQL Server身份验证建立连接。
在对象资源管理器窗口中展开服务器,然后选择数据库节点
右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。
django登陆页面输错一次提示还剩四次机会。
将所有的静态文件(css,js,前端第三方库)都默认放在static文件夹,并且在settings中配置,复制代码,创建应用python managepy startapp app01,修改配置文件,在应用中的reg中写好注册页面(reghtml)。
连接Django和Mysql数据库,告诉django用pymysql替换它默认mysqldb模块连接数据库,将你的数据库同步到数据库中,在views中配置reg函数,这样就注册成功。
Django是什么:
Django 是用 Python 开发的一个免费开源的 Web 框架,可以用于快速搭建高性能、优雅的网站,Django 提供了许多网站后台开发经常用到的模块,使开发者能够专注于业务部分。
由于创建连接的代价是很高的,
我们每次访问数据库都重新创建连接的话是非常消耗性的
我们可以再程序启动的时候先创建出一些连接,
放在一个集合中,
访问数据库的时候从集合中获取,
使用结束再放回集合中
这样做只是在程序启动的时候消耗性能去
创建mysite目录
django-adminpy startproject mysite这个命令作用是:这将创建在当前目录创建一个mysite目录
前提是从命令行上cd到你想储存你代码的目录,然后生成各种子目录
首先需要注意的是文件目录
这里面的文件大致作用:
books这个 文件夹存放的是新建数据库的各种信息
books/templates这个目录下装的是网页的布局,当然这个网页的布局就是showhtml所提供
books/viewspy定义函数,并且把showhtml引入进去,文件内容如下:
from djangoshortcuts import render,render_to_response
from djangotemplate import loader
from books import models
# Create your views here
def show(request):
# publisher_list = [{'name':"gongye",'city':'beijing'}]
publisher_list = modelsPublisherobjectsall()
return render_to_response('showhtml',{'publisher_list':publisher_list})
12345678910111213
books/modelspy文件存放的是你所创建的数据库,代码如下:
#coding=utf-8
from __future__ import unicode_literals
from djangodb import models
# Create your models here
class Publisher(modelsModel):
name = modelsCharField(max_length = 30)
address = modelsCharField(max_length = 50)
city = modelsCharField(max_length = 60)
state_province = modelsCharField(max_length = 30)
country = modelsCharField(max_length = 50)
website = modelsURLField()
# __unicode__这个函数用来返回某个值可以很好的用于查询和admin界面的显示
def __unicode__(self):
return selfname
class Author(modelsModel):
first_name = modelsCharField(max_length = 30)
last_name = modelsCharField(max_length = 40)
email = modelsEmailField(blank = True,verbose_name = 'e-mail')
def __unicode__(self):
return u'%s %s'%(selffirst_name,selflast_name)
class Book(modelsModel):
title = modelsCharField(max_length = 100)
author = modelsManyToManyField(Author)
publisher = modelsForeignKey(Publisher)
publication_date = modelsDateField(blank = True,null = True)
def __unicode__(self):
return selftitle
123456789101112131415161718192021222324252627282930313233
books下其他的文件就是在创建的过程中自己产生的
website/templates文件里存放的是各种显示的静态网页布局,这么多html文件,只要你在访问测试的时候,端口号后面加上html的文件名字就行比如,我要访问templates/basehtml文件,输入网址:localhost:8000/base就可以
website/settingspy文件是Django的设置文档,里面的INSTALLED_APPS添加多个应用,比如这里面我九添加了books应用,代码如下:
INSTALLED_APPS = [
'djangocontribadmin',
'djangocontribauth',
'djangocontribcontenttypes',
'djangocontribsessions',
'djangocontribmessages',
'djangocontribstaticfiles',
'books',
default属性只在Django的ORM模型中有效,不会真正映射到数据库里。要设置数据表的DEFAULT属性,你可以手动修改makemigrations生成的脚本,或者去修改Django本身。
在db/backends/creationpy中找到如下字段:
if fprimary_key:
field_outputappend(styleSQL_KEYWORD('PRIMARY KEY'))elif funique:
field_outputappend(styleSQL_KEYWORD('UNIQUE'))
在之后加上:
if(fdefault != modelsfieldsNOT_PROVIDED):
field_outputappend(styleSQL_KEYWORD('DEFAULT ' + str(fdefault)))
以上就是关于Django教程-02连接初始化数据库全部的内容,包括:Django教程-02连接初始化数据库、Python3下Django1.10连接数据库报错、关于DJANGO连接数据库和创建模型问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)