django学习记录

在学习python过程中,有段时间想要开发网站,于是接触了django。django是用来编写web网站的一个非常给力的框架,给力的地方在于,它使用的是MVC,即Model,view,control,模型,视图,控制器。确切的说是MTV,即Model,Template,View,模型,模板,视图。django的工作原理是从setting里找到URL存放的地方,在urls里面匹配url请求,由对应的视图函数进行处理,视图函数根据需要从模型里查询数据返回一个填充了数据的模板。它把各个部分分隔开,让开发者能更方便的开发网站。还有它提供了站点管理,输入/admin即可登录站点管理系统,不过要先创建一个超级用户。站点管理可以对数据进行添加删除等操作,非常省事。这只是我接触到的django一小部分,还有很多地方值得探究。

关于django的学习,可以查看django官方文档,1.9中文版貌似还没有,可以看1.8的,然后就是也可以参考django book2链接地址http://docs.30c.org/djangobook2/

学习完基础知识之后就是实战了,基本上都是写个博客什么的,网上有很多教程我参考的是http://www.dannysite.com/blog/233/,下面简要记录下开发流程。

django安装完成后,切换到所要存放项目的目录下,在命令行输入django-admin startproject 项目名 来创建一个新项目。(创建项目)

创建好项目后,切换到当前项目下,输入python manage.py runserver启动服务。(启动服务,可省略)

接着就是连接数据库,默认使用的是SQLite,如果只是小型项目的话,sqlite就够了,如果要用其他数据库,到setting里面修改即可。(修改数据库配置)

默认使用sqlite

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

改成mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',#设置mysql
        'NAME': 'test',#数据库名称
        'USER': 'root',#用户名
        'PASSWORD': 'xxxx',#密码
        'HOST': '127.0.0.1',#数据库所在服务器ip,本地服务器127.0.0.1
        'PORT': '3306',#端口号,一般都是3306
    }
}

输入python manage.py migrate来创建一些django自身依赖表(让django数据库初始化)

接着输入python manage.py startapp app名称来创建自己的一个app项目(创建新的app),记得在setting的INSTALL_APP里面加上这个app。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'appname',      
]

然后就是开发的重点了,一共是三步。

django采用的是MVC model-view-control即模型,视图,控制器。确切的说是MTV model,template,view即模型,模板,视图

这三个部分互相独立,你可以按你喜欢的方式来进行开发。模型指的是数据库的建立,在models.py文件中建立,django不直接使用sql命令,简化了很多步骤。模板指的是在template下的html模板文件,最终用来显示的文件。视图指的是views.py中的业务逻辑和urls.py中的url映射,通过url映射,使用views中的函数来处理业务逻辑,然后返回一个template中的模板。

打开models.py写好模型后,用python manage.py makemigrations app名称让django感应到数据库的变化创建相应的sql命令,在执行python manage.py migrate让django执行sql命令创建数据库所需的表。如果你想要使用django自带的后台管理系统,记得去admin.py引入创建的models,用admin.site.register()注册你的新创建的表,否则后台管理系统不会出现这些表。

接下来可以用django的站点管理来管理你的数据库,执行python manage.py createsuperuser来创建超级用户,输入用户名,邮箱,密码即可创建成功.创建成功后python manage.py runserver打开浏览器输入127.0.0.1:8000/admin来登录站点管理数据库

站点默认是英文的,如果想让站点显示中文,只要在setting.py里设置LANGUAGE_CODE='zh-Hans'

 创建好测试的数据后,开始写视图函数,写完后,在项目根目录下创建一个templates文件,将视图函数中用到的模板放在里面,在setting里面的TEMPLATES的DIRS里面添加templates/,否则会报错,找不到模板。最后就是写url来匹配视图函数,记得引入视图函数,大功告成。

下面介绍下manage.py基本命令

1. 新建一个 django project

windows下

​python django-admin.py startproject project-name

linux下

django-admin startproject project-name

2.​新建一个app

python manage.py ​startapp app-name

3.同步数据库​

python manage.py makemigrations app-name

python manage.py migrate app-name

4.使用开发服务器

python manage.py runserver

# 当提示端口被占用的时候,可以用其它端口:

python manage.py runserver 8001

python manage.py runserver 9999

(当然也可以kill掉占用端口的进程)

 # 监听所有可用 ip (电脑可能有一个或多个内网ip,一个或多个外网ip,即有多个ip地址)

​python manage.py runserver 0.0.0.0:8000

# 如果是外网或者局域网电脑上可以用其它电脑查看开发服务器

# 访问对应的 ip加端口,比如 http://172.16.20.2:8000

​5. 清空数据库

python manage.py flush

6. 创建超级管理员

python manage.py createsuperuser

# 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填

# 修改 用户密码可以用:

python manage.py changepassword username

7. 导出数据 导入数据

python manage.py dumpdata appname > appname.json

python manage.py loaddata appname.json

8. Django 项目环境终端

python manage.py shell

9. 数据库命令行

python manage.py dbshell

Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。

10. 更多命令

终端上输入 python manage.py 可以看到详细的列表,在忘记子名称的时候特别有用。

posted @ 2016-10-25 16:57  菲菲菲菲菲常新的新手  阅读(224)  评论(0编辑  收藏  举报