Django1.7学习笔记(一)
来源:互联网 发布:python 股票数据分析 编辑:程序博客网 时间:2024/06/05 03:38
最近在学习Django,英文不好,就找了一些中文资料,最全的就是The Django Book 2.0中文版链接:http://docs.30c.org/djangobook2/index.html,试着看了一下还不错,但是书上讲的是Django1.1的版本,号称是兼容Django1.9,我用的最新版为Django1.7,还是有一些差别的,所以,结合这本书和Django1.7的官方文档,加上自己的一些实验和理解,将Django1.7的大概开发过程记录下来,希望对大家有帮助,本人学生党,菜鸟,欢迎大牛们指导!
开发环境:Ubuntu Kylin14.10,Python 2.7.8,Django1.7,mysql5.5,IDE Pycharm3.13
1.安装python和Django
python Ubuntu自带,默认的是2.X版本,Django可通过#easy_install django或者到官网下载安装,这个不多讲
2.创建项目
安装完django后因该会自动安装django-admin命令,没有的话会提示你是否安装的,然后选择一个文件夹建立项目,这里就为mysite,执行命令
$django-admin startproject mysite
此时会自动建立mysite文件夹,文件夹目录结构如下:
mysite/ #只是Django项目的容器,可以随便起名
manage.py #命令行工具,用来和Django交互,重要!!!
mysite/ #Python的项目管理包,所以需要__init__.py,
__init__.py #初始化文件,不用管
settings.py #Django的配置文件
urls.py #Django的URL配置文件
wsgi.py #WSGI兼容的Web服务器的一个入口点,以满足您的项目
如果不想这么麻烦的话可以直接用IDE,我用的是Pycharm,还不错,直接建一个Django项目,下面要说的什么App也会自动建好,如下图:
三.数据库设置
现在主要是编辑setting.py和用manage.py工具了,打开setting.py文件,进行编辑,首先找到DATABASES字典,Django默认的数据库时SQLite,如果用SQLite的话就不用配置了,如果要用其他的数据库的话就需要配置,这里用的时mysql5.5的数据库.这是我的配置:
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql', #数据库类型
'NAME' : 'django', #数据库名称
'USER' : 'root', #用户名
'PASSWORD' : 'root', #数据库密码
'HOST' : '127.0.0.1', #主机地址,这里是本机
'PORT' : '3306', #数据库端口号
}
}
这里在setting中可以修改一下时区和语言,修改为中国的时区和中文如下:
LANGUAGE_CODE ='zh-cn'
TIME_ZONE = 'Asia/Shanghai'
另外,需要注意的INSTALLED_APPS在该文件的顶部设置。持有的是在该Django的情况下激活的所有Django应用程序的名称。应用程序可以在多个项目中使用,你可以通过包装和其他人在他们的项目分发使用,
默认情况下,INSTALLED_APPS包含以下应用程序,所有这些都与Django默认生成的:
- django.contrib.admin -管理员站点.
- django.contrib.auth -一种认证系统。
- django.contrib.contenttypes -内容类型的框架。
- django.contrib.sessions -一个session框架。
- django.contrib.messages -消息传递框架。
- django.contrib.staticfiles -管理静态文件的框架。
这些应用都需要在数据库中建立一个表格,所以要通过一下命令建立表格:
# python manage.py migrate
运行成功结果如下:
Operations to perform:
Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying sessions.0001_initial... OK
#
此时数据库中已经自动建立了相应的表了.
顺便说一句,如果mysql数据库不能插入中文的问题,可以看一下我的另一篇博客:Ubuntu下mysql不能显示中文解决方法:http://blog.csdn.net/dj1174232716/article/details/40746289
四.开发服务器
现在启动django服务器:
$ python manage.py runserver
然后可以通过http://127.0.0.1:8000/访问,默认的端口是8000,且不允许其他地址访问,只能通过本地访问.但是可以通过:
$ python manage.py runserver 8080修改端口号,还可以可以通过:
$ python manage.py runserver 0.0.0.0:8000 可以让其他主机访问.
五.创建模型
您在Django写的每个应用程序包含一个Python包,遵循一定的约定。Django提供了一个实用程序,自动生成一个应用程序的基本目录结构,这样你就可以专注于编写代码,而不是创建目录。一个项目可以包含多个应用程序。一个应用程序可以在多个项目中。
现在我们将创建一个应用程序(APP),通过:
$python manage.py startapp polls 我们创建了一个名为polls的应用程序,目录结构变成下面的结构:
mysite/ #只是Django项目的容器,可以随便起名
manage.py #命令行工具,用来和Django交互,重要!!!
mysite/ #Python的项目管理包,所以需要__init__.py,
__init__.py #初始化文件,不用管
settings.py #Django的配置文件
urls.py #Django的URL配置文件
wsgi.py #WSGI兼容的Web服务器的一个入口点,以满足您的项目
polls/
migrations/
__init_.py
__init__.py
admin.py
models.py
tests.py
views.py
然后试着建立一个数据库模型:
六.激活模型
Django的模型是需要激活或者说安装后才能使用的需要在settings.py中安装,编辑如下:
$ python manage.py makemigrations polls
会看到如下内容:
Migrations for 'polls':
0001_initial.py:
- Create model Choice
- Create model Question
- Add field question to choice
通过运行makemigrations,你告诉Django的,你已经做了一些改动,以你的模型(在这种情况下,你已经取得了新的),并且你希望更改存储为一个迁移.然后通过:
$ python manage.py sqlmigrate polls 0001
让Django自己创建SQL语句,然后通过命令:
$python manage.py migrate
将这些SQL执行,在数据库中创建相应的表,会看到如下提示:
Operations to perform:
Apply all migrations: admin, contenttypes, polls, auth, sessions
Running migrations:
Applying polls.0001_initial... OK
七.通过Django的API访问数据库中的数据
可以通过Django提供的API来访问数据库中的数据而不用利用SQL语句来读取数据.
可以进入Django提供的shell来操作一下数据:
$python manage.py shell 进入shell
如果你不想使用manage.py,没问题。只需设置DJANGO_SETTINGS_MODULE环境变量mysite.settings,启动一个普通的Python外壳,并成立了Django的:
现在通过代码看看Django是怎样通过API来操作数据的:
以上实例均来子Django1.7的官方文档.
好了一个简单的Django开发环境基本上搭建好了,下次我们来看看更多细节,怎样开发一个应用程序.
未完待续!
- Django1.7学习笔记(一)
- Django1.7学习笔记(二)
- Django1.7学习笔记(三)
- Django1.7学习笔记(四)
- Django1.7学习笔记(五)
- Django1.10文档学习笔记一
- Django1.9学习笔记
- django学习笔记(一):Python2.7 、Django1.2下载及安装
- django1.5学习笔记(1)
- Django1.8学习笔记总结(基础+settings)
- Django1.10文档学习笔记二
- Django1.10文档学习笔记三
- Django1.10文档学习笔记四
- Django1.10文档学习笔记五
- django1.5 官方文档阅读笔记(一)
- [Django1.5] two-scoops-django-best-practices 笔记一
- Django1.3.1笔记
- django1.10 使用笔记
- Spring Bean的5种作用域
- AFNetworking
- 转载:BGA封装芯片手工焊接攻略
- ClippingNode裁切节点
- v萨斯大学阿斯顿苏打水
- Django1.7学习笔记(一)
- JSON
- base64 图片处理【MySQL PHP】
- 隐藏进程的集中方法集合-可供参考
- 第十周项目3
- 第十周项目4及其拓展:大奖赛计分
- C++ Primer第八章课后编程题
- p2p理财怎么做才让人放心
- 关于c#文件流与二进制的读入写出(二)