Python3学习之二Django搭建

严格来讲,这篇应该是前一篇 的续集吧,这也属于环境搭建:搭建一个Web开发环境。

1,官网下载最新的Django,当前最新的是1.8.2。所以我就下的这个版本,下载下来的是一个gz包Django-1.8.2.tar.gz,其实不管是Windows7还是CentOS7都可以下载这个版本,解压出来就可以了。

 http://www.cnblogs.com/images/cnblogs_com/SLKnate/696608/t_django_zip.png

我是将其解压到了Python34的安装目录下面。然后在命令行下执行:

Python setup.py install

自动安装完之后。转到Scripts. 然后创建一个project 来感性认识一下

python django-admin-script.py startproject mysite

cd mysite

python manage.py runserver 2222

最后一行如果不输入端口号2222,那么Django就会默认使用8000.

http://www.cnblogs.com/images/cnblogs_com/SLKnate/696608/t_django_project.png

浏览器中打开来测试观察一下

http://www.cnblogs.com/images/cnblogs_com/SLKnate/696608/t_django_firstlook.png

根据浏览器的提示,输入

python manage.py startapp blog

来创建一个应用app,即blog。由于我们这个应用是在mysite这个project下面,所以我们可以打开mysite下面的urls.py文件进行url设置,这个跟mvc的 路由很相似。在urls.py里面加上一句

url(r'^blog/index$', 'blog.views.index'),

这就告诉浏览器,如果有人输入的url是blog/index那么就给我定向到blog目录下的views.py文件里的index方法去。所以接下来我们就到blog目录下的views.py里面加入

from django.http import HttpResponse

# Create your views here.
def    index(req):
    return HttpResponse('<h1>Hello,World.</h1>')

启动

python manage.py runserver 2222

在浏览器中看到的效果。

 

 但是,

上面是直接写出来的,真实情况下不可能每次都来改这个方法,所以Django有了template的概念。

根据约定,所有的 template应该保存在应用app下的templates目录下面,所以在blog\templates哪里创建一个index.html文件。内容就简单的输入

<!DOCTYPE html>
<html>
    <head>
        <title>first Django</title>
    </head>
    <body>
        <h1>Hello,World. --from template.</h1>
    </body>
</html>

然后将 views.py里的index方法进行更改

from django.http import HttpResponse
from django.template import loader,Context

# Create your views here.
def    index(req):
    t=loader.get_template('index.html')
    c=Context({})
    return HttpResponse(t.render(c))

  当然还有一种方法就是

from django.shortcuts import render_to_response
  
def   index(req):
   return render_to_response('index.html',{})

这个时候,如果就启动然后浏览器测试的话,就会告诉你说找不到template文件。解决方法是用Django 自带的一个后台管理系统来添加blog应用,也就是打开mysite/mysite/settings.py 文件,在INSTALLED_APPS块的最后面加上blog. 如

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog'
)

然后再次启动就可以看到我们内容了。

 总结一下:

1,python setup.py install
2,python django-admin.py startproject mysite
3,python django-admin.py startapp blog
4,vim settings.py
   add app: blog
5,vim urls.py
   url(r'','blog.views.index')
6,vim blog/views.py
  from django.http import HttpResponse
  
  def index(req):
       return HttpResponse('<h1>Hello,World</h1>')
7,python manage.py runserver 2222

 2,CentOS7

 同样官网下载 Django-1.8.2.tar.gz包,然后解压并使用自动安装命令

python setup.py install

这里需要特别说明的,由于我在上一篇文章中升级了Python 至3.4.3版本,但其它的相关的一些却是没有升级,然后发现yum也不能用,baidu,bing找了一些网页发现是解决不了问题, 因为我在安装rpm的时候,说是没有其依赖项,但是这些依赖项又要用yum去安装,这就陷入了一个死局了。于是我只好又退回来了使用自带的2.7.5版本。退回来之前我先用

whereis python

找到2.7.5的路径,然后执行

ln -sf /usr/bin/python2.7 /usr/bin/python

这样我们就可以使用

#1,创建project,并更改setting.py和urls.py
django-admin startproject mysite

cd mysite/

cd mysite/

vim settings.py
vim urls.py 

cd ..

#2,创建应用程序app

django-admin startapp blog

cd blog/
##2-1,为应用程序创建模板
mkdir templates

cd templates

vim index.html
##2-2,为模板创建调用方法
cd ..

vim views.py 
#3, 启动开发服务器
cd ..
python manage.py runserver 2222
simple_django_sample

浏览器看到我们自制的模板。

  

至此,我们使用了MTV的VT了,但还没有使用M. 接下来使用Model. 但使用Model之前,由于我是minimal安装的CentOS7,需要手动安装mysql. 且先看我的mysql 安装步骤。

CentOS7的yum源中默认是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

1. 下载mysql的repo源

$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

2. 安装mysql-community-release-el7-5.noarch.rpm包

$ rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

3. 安装mysql

$ yum install mysql-server
根据步骤安装就可以了,不过安装完成后,没有密码。

4. 登录

$ mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),
原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为root:

$ chown -R root /var/lib/mysql
然后,重启服务:
$ systemctl restart mysqld.service
setup_mysql5.6.25_Community_Server

 

参考学习网站

<Django Web开发指南>读书笔记一

 

posted @ 2015-06-06 13:10  nateliu  阅读(472)  评论(0编辑  收藏  举报