django (二) 第一个django app 初始化
第一个django app 我们来做一个投票网站。
他由两部分组成:
- 一个公共界面让用户去投票
- 一个管理界面,对投票增删改。
首先,你得创建一个新的项目,只需一行代码,django将自动为你完成这项任务。
cd切换到你想存储你项目的路径下如C:\,输入:
django-admin.py startproject mysite
这时,你的C:\下将多了一个文件夹mysite,打开后你会看到:
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
最外面的mysite根目录只是你整个项目的容器,你可以随意修改它的名字,并不影响程序。
manage.py : 一种命令行工具,可让你以多种方式与该 Django 项目进行交互。
下面的mysite目录就是你实际创建的项目包,可以在别的程序中导入它。eg:mysite.urls
__init__.py : 让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它
settings.py : 该 Django 项目的设置或配置。 查看并理解这个文件中可用的设置类型及其默认值
urls.py : django项目的URL设置。 可视其为你的django网站的目录
wsgi.py : WSGI-compatible网络服务器为你的项目提供的服务的入口点
下面,让我们来启动它。首先切换到最外面的mysite目录下,输入:
manage.py runserver.
你将看到下面的文字:
Validating models...
0 errors found
January 15, 2015 - 15:50:53
Django version 1.5.12, using settings ‘mysite.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-BREAK.
这代表你已经启动成功了,登录到:http://127.0.0.1:8000/下去看一看吧。
如果出现这个画面,那就表示OK。
默认情况下,runserver启动的端口是8000,如果你想修改的话,可以输入:
manage.py runserver 8080
如果想切换ip的话,请输入:
manage.py runserver 0.0.0.0:8000
注意,你每次修改代码,django服务器都会自动重载,不用你每次重启。然而,当你添加新的文件,或者编译文件没法自动重启时,你需要进行手动重启。
下面,进行数据库的配置,打开settings.py文件,你会看到这样一段代码:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # 在backends.后面添加你选择的数据库,这里我们选自带的sqlite3
'NAME': r'C:\mysite\mysite.db', # 存储数据库文件的路径 # The following settings are not used with sqlite3: 'USER': '', 'PASSWORD': '', 'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 'PORT': '', # Set to empty string for default. } }
由于我们选择的是sqlite3所以我们不用设置USER、PASSWORD等参数,后面它将会自动生成。
你还可以修改时区,在settings.py里是这样一段代码:
# Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # In a Windows environment this must be set to your system time zone. TIME_ZONE = 'America/Chicago'
把'America/Chicago'换成'China/Beijing'.
在文件的最下面有这样一段:
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', # Uncomment the next line to enable the admin: # 'django.contrib.admin', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', )
这是django自带的一些应用,
• django.contrib.auth – 一个验证系统.
• django.contrib.contenttypes – 一个目录类型的框架
• django.contrib.sessions – 一个会话框架
• django.contrib.sites – 管理Django多站点的框架
• django.contrib.messages – 一个消息框架
• django.contrib.staticfiles – 管理静态文件的框架
每一个应用app都会在数据库里生成一张以上的表,在我们使用这些app前,我们必须手动生成这些表,输入下面代码:
manage.py syncdb
会出现下面的界面:
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_siteYou just installed Django's auth system, which means you don't have any superuse
rs defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'lol'): huxiaodan
Email address: 759981161@qq.com
Password:
由于是第一次创建数据库,这里需要手动输入一些用户初始信息,账号密码等。