您的位置:首页 > 编程语言 > Go语言

Django安装和使用

2017-08-30 10:00 393 查看
Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站!官方网站:Meet 

Django


一、环境准备(centos7.4):

# yum install python-django  -y          //安装django(我装的是djang2.0版本)

# yum install mariadb mariadb-server     //安装数据库(5.5版本)

# systemctl enable mariadb.service       //开机自启

# systemctl start mariadb.service        //启动mysql

# mysql_secure_installation              //初始化数据库及密码


后续需要连接数据库,所以要安装
mysql驱动
: 

因为我使用的是
python3.6
版本,已经不支持
MYSQLdb
模块,所以安装
pymysql
模块:

# pip install PyMySQL     //安装mysql驱动


注:因为
django
默认只识别
MYSQLdb
模块,因此安装了
pymysql
模块后在下面同步数据库步骤前需要改下配置,详情见下面步骤; 

python2.7
请安装
MySQL-python
python3.4
请安装
python34-mysql


测试模块是否安装成功:

python2.7/3.4:

>>> import MYSQLdb

python3.6:

>>> import pymysql


如果没有报错说明模块安装成功。 

如果不安装此模块,后续启动项目连接数据库(mysql)会报错:
Error loading MySQLdb module



二、基本命令:

为了方便管理,可以单独创建一个目录,用于存放新项目,cd到新目录中,执行命令项目默认存放在当前目录下。

1、新建一个 django project项目(例如:fxy_blog)

# mkdir /fxy

# cd /fxy

# django-admin startproject fxy_blog      //项目名字只支持下划线和字母


新项目目录结构如下:

fxy_blog/              //项目名字

├── fxy_blog           //包含项目中实际的Python代码

│   ├── __init__.py    //默认为一个空文件,定义了此目录为一个python包

│   ├── settings.py    //此项目的配置

│   ├── urls.py        //此项目中URL的一些声明

│   └── wsgi.py        //WSGI兼容的Web服务器为此项目提供服务的入口点

└──  manage.py         //一个命令行实用程序,可让与此Django项目进行交互


注:
django-admin
是Django的用于管理任务的命令行工具;
manage.py
会在每个Django项目中自动创建。 
manage.py
django-admin
处理的事情差不多,但是也有不同:django-admin
and manage.py

2、启动测试 

这时,我们有了一个自己的项目,可以启动测试一下:

# python manage.py runserver


然后你会看到以下输出:

Performing system checks...


System check identified no issues (0 silenced).

December 11, 2017 - 09:52:22

Django version 2.0, using settings 'fxy_blog.settings'

Starting development server at http://127.0.0.1:8000/[/code] 
Quit the server with CONTROL-C.


上面只是允许本机访问,如果允许所有人访问执行:

#  python manage.py runserver 0.0.0.0:8000


监听端口可任意更改。

现在已经运行,在浏览器中输入
http://114.215.157.174:8000/
会看到恭喜页面,还有一个绿色的小火箭,说明项目开始工作啦!

报错解决:执行启动命令后,浏览器访问可能会报错DisableALLOWED_HOSTS字样(忘记截图了),这时需要修改文件: 
# vim /fxy/fxy_blog/fxy_blog/settings.py
 

找到 
ALLOWED_HOSTS
 ,修改为
ALLOWED_HOSTS
= ['*']
 

然后重新启动项目。

不过有一个项目是仅仅不够的,我们需要有自己的网页~

3、新建一个django app应用程序(例如:web)

# django-admin startapp web


# python manage.py startapp web


项目和应用程序有什么区别? 

一个应用程序是一个Web应用程序,它执行一些操作,例如Weblog系统,公共记录数据库或简单的应用程序。 项目是特定网站的配置和应用程序的集合。 项目可以包含多个应用程序。 一个应用程序可以在多个项目中。

新应用程序目录结构如下:

web

├── admin.py

├── apps.py

├── __init__.py

├── migrations

│   └── __init__.py

├── models.py

├── tests.py

└── views.py


url.py:urls.py本质上就是一个标准的python文件,这个python文件的作用就是在URL请求和处理该请求的视图函数之间建立一个对应关系,换句话说,它就是一个url请求映射表。参考:Django中关于URL配置文件urls.py的理解

4、编写我们的第一个view 

打开文件
web/view.py
,然后输入下面的python代码:

# vim web/views.py


from django.http import HttpResponse

def index(request):

return HttpResponse("Hello, world. You're at the web index.")


要调用这个视图,需要映射到URL,在web目录中创建一个
urls.py
的文件,web目录结构如下:

web

├── admin.py

├── apps.py

├── __init__.py

├── migrations

│   └── __init__.py

├── models.py

├── tests.py

├── urls.py

└── views.py


编辑
web/urls.py
文件,添加如下代码:

# vim web/urls.py


from django.urls import path

from . import views

urlpatterns = [

path('', views.index, name='index'),

]


下一步是将根URL配置文件指向
web.urls
模块。 

fxy_blog/urls.py
中,为
django.urls.include
添加一个导入,并在
urlpatterns
列表中插入一个
include()
,如下:

# vim fxy_blog/urls.py


from django.urls import include, path

from django.contrib import admin

urlpatterns = [

path('web/', include('web.urls')),

path('admin/', admin.site.urls),

]


现在我们已经把index view关联到了URL配置文件中,让我们来验证一下,执行:

# python manage.py runserver 0.0.0.0:8000


在浏览器中输入
http://IP:8000/web/
,你会看到 “Hello, world. You’re at the polls index.”字样,证明你成功了!

5、连接数据库

文章开头说过python3.6支持pymysql模块,但是django不识别,需要修改: 
fxy_blog/fxy_blog/__init__.py
 

在里面输入以下内容并保存: 
python 

import pymysql 

pymysql.install_as_MySQLdb()


修改数据库连接:

# vim /fxy/fxy_blog/fxy_blog/settings.py


找到
DATABASES
字段,修改成:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',      //连接数据库类型

'NAME': 'test',                            //数据库名称

'USER': 'root',                            //用户

'PASSWORD': '123456',                      //数据库密码

'HOST': '127.0.0.1',                       //主机

'PORT': '3306',                            //数据库端口号

}

}


然后保存退出

数据库类型可选: 
django.db.backends.sqlite3
django.db.backends.postgresql
django.db.backends.mysql
,
or
django.db.backends.oracle
或其他:Database
Backend

执行以下命令:

# python manage.py migrate


如果没有python报错说明没问题~

6、清空数据库

# python manage.py flush


7、创建超级管理员

# python manage.py createsuperuser


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

修改用户密码可以用:

# python manage.py changepassword username


设置好管理员,就可以登录django后台管理页面管理一些用户和组: 

在浏览器输入
http://IP:8000/admin/
,输入刚才创建的管理员账号和密码登录。

8、导出数据 导入数据

# python manage.py dumpdata appname > appname.json

# python manage.py loaddata appname.json


9、Django 项目环境终端

# python manage.py shell


10、数据库命令行

# python manage.py dbshell


app文件:将新的app加入到 new_project/settings.py #加入新app 

view文件:新建app目录下:learn/views.py #写明需求模块 

url文件:新建项目的子目录下:new_project/urls.py #调用需求模块显示在网页上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: