创建Django

本文介绍如何从零开始搭建一个Django项目,包括环境配置、数据库设置及基本应用的开发流程。

如果这是你第一次使用Django,你需要完成一些初始化设置。 即,你需要自己用代码来创建一个Django项目 ——一个Django实例所需的设置集合,包括数据库的配置、针对Django的配置选项和应用本身的配置选项。

在命令行(终端)中,cd(例如cd exam)到你想要用来保存代码的目录,然后运行如下命令:

$ django-admin startproject mysite

这将会在你的当前目录下生成一个 mysite目录。

如果你曾经学过普通的旧式的PHP(没有使用过现代的框架),你可能习惯于将代码放在Web服务器的文档根目录下(例如/var/www)。使用Django,你不需要这么做。 将Python代码放在你的Web服务器的根目录不是个好主意,因为它可能会产生让人们在网上看到你的代码的风险。 这样不安全。

将你的代码放置在Web服务器根目录以外的地方,例如/home/mycode

让我们看一下startproject生成了什么:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

这些文件是:

  • 外层的mysite/根目录仅仅是项目的一个容器。它的命名对Django无关紧要;你可以把它重新命名为任何你喜欢的名字。
  • manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互。 你可以在django-admin和manage.py中读到关于manage.py的所有细节。
  • 内层的mysite/目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字(例如 mysite.urls)。
  • mysite/__init__.py:一个空文件,它告诉Python这个目录应该被看做一个Python包。 (如果你是一个Python初学者,关于包的更多内容请阅读Python的官方文档)。
  • mysite/settings.py:该Django 项目的设置/配置。Django 设置 将告诉你这些设置如何工作。
  • mysite/urls.py:该Django项目的URL声明;你的Django站点的“目录”。 你可以在URL 路由器 中阅读到关于URL的更多内容。
  • mysite/wsgi.py:用于你的项目的与WSGI兼容的Web服务器入口。 更多细节请参见如何利用WSGI进行部署

 

数据库的建立

打开mysql命令对话框

输入 create database csvt default charset=utf8;

先找到/mysite/mysite/setting.py

修改相关内容

复制代码
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
)
复制代码
复制代码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'csvt',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'',
        'PORT':'',
    }
}      
复制代码

打开mysite/blog/models.py,输入如下内容

from django.db import models

class Employee(models.Model):
     name=models.CharField(max_length=20)

同步数据库




创建完成后,在项目文件夹启动Django自带的web服务器。Django会自动检查配置文件中的错误,如果全部正常则顺利启动:

$ python manage.py runserver
Validating models…
Performing system checks…
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run ‘python manage.py migrate’ to apply them.

June 01, 2015 – 00:00:00
Django version 1.8.2, using settings ‘mysite.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

访问http://127.0.0.1:8000,如果顺利显示,说明Django已经安装成功了。但现在只有本机可以访问,要让外网能够访问,或是要更换默认的8000端口,可以执行命令:

$ python manage.py runserver 0.0.0.0:8080

这样就将端口修改为8080,且外网也可以通过IP访问本机上的Django。

注意红字部分提示还没有执行migrate。这是1.7版本加入的数据库迁移工具,执行:

$ python manage.py migrate

可以看到Django创建了身份认证(auth)相关的表,默认是sqlite数据库,所以项目文件夹下会生成db.sqlite3这个文件。

现在要让Django支持MySQL数据库。编辑配置文件(mysite/mysite/settings.py)。找到DATABASES的配置,当前版本是在77行,默认是sqlite,把它改成MySQL:

 

代码的中文注释,在不指定Python文件编码的情况下会引起SyntaxError,所以不要复制这些中文注释。下文的中文注释同理。

Django(Python)操作MySQL依赖第三方包,所以要先安装MySQL for Python

$ wget https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip
$ unzip MySQL-python-1.2.5.zip
$ sudo python setup.py install

可能会提示EnvironmentError: mysql_config not found。因为没有安装开发工具包,所以找不到mysql_config文件,执行:

$ sudo apt-get install libmysqld-dev

安装模块后再次执行migrate命令,如果相关的模块/库都正确安装,Django会创建下列表:

mysql> show tables;
+—————————-+
| Tables_in_dmyz |
+—————————-+
| auth_group
| auth_group_permissions
| auth_permission
| auth_user
| auth_user_groups
| auth_user_user_permissions
| django_admin_log
| django_content_type
| django_migrations
| django_session
+—————————-+
10 rows in set (0.00 sec)

URL

现在首页还是默认内容。Django会通过URL配置文件来查找相应的对象,URL地址使用正则表达式设置。在mysite/mysite目录下可以找到urls.py文件,它是URL配置的默认起点,修改这个文件增加首页的配置:

 

在mysite/mysite文件夹下新建views.py文件,内容如下:

刷新网站首页,看到已经输出了”hello, world”。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值