- 安装Django
- 安装DB
- 安装Mysql DB API模块
- create project&app
- makemigrations & migrate
- # migrate
- the development server
- 为web site添加管理员
you want to try something new, so keep with it.don’t like me.
win下Django环境及开发环境
安装Django
已经装好的环境中就有
pip
了。安装好的Django路径D:\python2.7\Lib\site-packages\Django-1.8.13-py2.7.egg
安装DB
我的系统安装的XAMPP(包含mysql),确认安装正常后,可以使用Navicat Premium连接到这个DBMS。
XAMPP
XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。1 许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿。如果您想添加 MySQL、PHP 和 Perl,那就更难了。XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。
安装Mysql DB API模块
参见本标签下,安装Mysql DB模块文档
create project&app
$ django-admin help startproject
(查看子选项,设置等)
$ django-admin help startapp
命令脚本’django-admin.py’在D:\python2.7\Lib\site-packages\Django-1.8.13-py2.7.egg\EGG-INFO\scripts\django-admin.py
,如果在win-cmd控制窗口执行:1.在任何目录执行都可以,但是得添加该命令的绝对路径;2.进到该命令所在的路径执行,执行命令django-admin.py --help
。
startproject目录结构
A.外层的mysite/目录名字可以更改,内层不可以更改;
B.mysite/settings.py 是这个Django项目的配置文件,数据库、安装的应用都在这里配置。
C.mysite/urls.py: The URL declarations for this Django project; a “table of contents” of your Djangopowered site.
D.mysite/wsgi.py: An entry-point for WSGI-compatible web servers to serve your project.
E.mysite/_ _init__.py: An empty file that tells Python that this directory should be considered a Python
package.
startapp目录结构
在刚才创建的project项目(不是内层mysite目录内)内创建新的app,假设名字是polls.
polls/models.py:定于你的数据库表结构。每个model是数据单一的、原始的定义;每个model都是
django.db.models.Model
的子类。
acting models
- create a database schema
- Create a Python DB API
- 在mysite/settings.py文件中添加
DATABASES
,INSTALLED_APPS
相关字段。
在BBS开发项目中,随之运行
python manage.py suncdb
,由于表结构中有一个字段是models.ImageField()
因此要求预先安装Pillow,进入python的script目录运行pip install Pillow
即可,创建数据库及数据表完成。
makemigrations & migrate
makemigrations
$ python manage.py makemigrations app1
>By running makemigrations, you’re telling Django that you’ve made some changes to your models and that you’d like the changes to be stored as a migration.
在mysite/app1/migrations/
生成0001_initial.py
,目录结构如下:
sqlmigrate(不怎么用)
$ python manage.py sqlmigrate app1 0001
查看migration时运行的SQL语句。
# migrate
$ python manage.py migrate
在已创建数据库中,创建这些数据库models。
注意:makemigrations+migrate是为了在数据库中同步修改的数据表。
the development server
$ python manage.py runserver [chaged port]
在本地8000端口起一个python写的轻量级web server.http://127.0.0.1:8000/
为web site添加管理员
创建admin
$ python manage.py createsuperuser
,这里设为admin:123456
$ python manage.py runserver
设置后进入web server:http://127.0.0.1:8000/admin/,输入admin及密码即可。
添加app到admin
在mysite/app1/admin.py
import app1的models,并对models表注册。
刷新http://127.0.0.1:8000/admin/
正在开发的app1就会在这里了,包括app1的表结构。