Title: Django快速入门
Date: 2016-07-04 11:25:31
Modified: 2016-07-04 11:25:31
Category: Python
Tags: Django, Python, Web
Slug: django-learn
Authors: Stiller
Summary: Django快速入门,安装环境以及快速使用Django开发Web应用
Django一个基于Python的Web开发框架。
同时也是全国使用最多的Python开发框架,相对Flask之类的较重,但是文档稳定而社区活跃。
由于Django是在一个快节奏的新闻编辑室环境下开发出来的,因此它被设计成让普通的网站开发工作变得简单而快捷。
我只是个Python初学者,之前有一部分利用其它语言开发网站的经验,本系列属于我个人的入门篇,会尽可能的写下基于Windows平台(我也知道在win上py好坑,但是项目没办法…)的入门教程,我会尽可能快的更新。
但介于我自己就是个新手~所以如果有问题请大家指出,马上改。
如果各位前辈有各种疑问,都可以给我留言~~~♪(∇*)
这篇文章是对于Django的安装教程。
我们需要的工具。
- python(我用的是2.7,对了,我是直接使用的Anaconda)
- ipython/bpython(命令行增强工具,主要是为了使用shell)
- pip
- mysql等数据库
- 开发环境我是装的PyCharm
Linux环境下
#####(如果权限不够请使用sudo,如果用户不在sudo组请是哟su命令切换用户并进行用户进组的添加)
- 一般Python已经安装(如果没有安装使用,ubuntu下的
apt-get install
进行安装) - 有可能也已经安装上了,安装pip(
apt-get install python-pip
) - 一般ipython也有可能装上了,没安装接着安装
- 直接使用命令
pip install Django==1.9.7
进行安装,如果安装不成功则使用步骤五进行安装 - 在git上下载其源码,下载地址
- 下载在本地之后,cd 进此下载目录,执行
python setup.py install
进行安装
安装完成。
Windows下的安装
Python下载和pip等安装大同小异,所以在此不再繁述。但是需要将此Python的路径放入系统的Path路径中(到处都是教程,百度一下就好)。
- 安装完毕环境之后,也是下载其源码 下载在本地之后,cd 进此下载目录,执行
python setup.py install
进行安装
安装完成。 - 需要将Django的bin路径也添加入系统变量中(这个目录实在Python的lib目录中的site-package中的Django的bin ),才能使用django-admin命令新建项目。
##测试
- 找到自己的一个空目录作为项目目录,再此目录上键入
django-admin.py startproject mysite
,则建立好一个简单的项目名为mysite的项目。 - 进入 mysite文件夹中,使用
python manage.py
进行帮助的查看。 - 使用
python manage.py runserver
开启应用。
已经在前一篇搭建好了Django的环境,可以以一个小应用进行Django的入门。
使用python manage.py runserver
开启应用
因为默认开启的是本机的 127.0.0.1:8000
IP和端口,那么打开浏览器键入地址之后可见。
话说这个Markdown编辑器的图片上传功能不错~
同时在命令行窗口也接到了一个Get请求
如果不知道什么是Get/Post的话,请点击,一点关于RESTful的知识
首先我们需要建立一个应用。python manage.py startapp learn
什么是应用,应用和服务器有什么关系。
应用是一个Web应用程序,它完成具体的事项 —— 比如一个博客系统、一个存储公共档案的数据库或者一个简单的投票应用。 项目是一个特定网站中相关配置和应用的集合。一个项目可以包含多个应用。一个应用可以运用到多个项目中。
p.s:上面的话来自于http://python.usyiyi.cn (o)/~
开发服务器会根据需要自动重新载入Python代码。 你不必为了使更改的代码生效而重启服务器。 然而,一些行为比如添加文件,不会触发服务器的重启,所以在这种情况下你需要手动重启服务器。
- 为什么手贱关掉浏览器,好不容易打了那么多字都木有了呢……/(ㄒoㄒ)/~~我辛辛苦苦撸的字啊……(╯‵□′)╯︵┻━┻*
重新写吧……
那么开始开发我们自己的一个博客系统
- 初始化一个project
- win+r,运行cmd,进入你需要建立的目录,键入
django_admin.py startproject blog
2.初始化一个app
- cd命令进入blog文件夹,键入命令
python startapp myapp
3.进入blog/setting.py配置
- 如图:
- 新建Models
- 我们简历最基础的博客系统,建立一个Article类,只需要title,content,date,具体代码如图:
p.s unicode方法主要是为了在界面上返回值是文章的主题,而不是自身的类型,可以不需要此函数。
- 自动建立表
python manage.py migrate
命令。
具体的模型操作修改如下
模型的编写,主要是对于数据库的修改,在Django中,默认使用SQLite,主要分为三步:
- 修改你的模型(在learn/models.py文件中)。
- 运行
python manage.py makemigrations
,为这些修改创建迁移文件。 - 运行
python manage.py migrate
,将这些改变更新到数据库中。
- 自动建立后台系统
python manage.py createsuperuser
这个命令就可以获得一个功能强大的后台管理系统,并且此系统一开始会让你输入用户名与密码等(这里密码需要选择比较复杂的8位以上,否则如图:)
- 注册此Article的后台
- myapp.py中,新增代码
from django.contrib import admin from .models import Article admin.site.register(Article)
8.start server
python manage.py runserver
And then u can see this blog’s controller . Enjoy it.
p.s It’s not a normal project, I will complete it as soon as possible.Thx.
GET/POST是最常见的使用HTTP请求,作为HTTP请求:
- GET是明文显示的,位于网址之后,一般形式为:www.xxx.com/?id=1&value=100这样的形式。
- POST是一般是发送一个表单,数据等使用的方法。
- 我知道一般开始学Django这些基础知识肯定是比我好了不少,所以这里不再赘述这些基础知识,如果有需要,请移位至W3C SCHOOL
- 我们通过一个简单的小程序进行Get的获取
cd
进入你需要建立项目的目录中- 使用
django-admin.py startproject learn20160711
新建工程 - 使用
python manage.py startapp learn
新建一个应用 - 使用PyCharm打开工程。将定义的app加到settings.py中的INSTALL_APPS中。
(* ̄(oo) ̄):如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件**(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)
-
打开learn中的view层,我们写一个简单的加法函数,如下图:
注:此函数中request.GET['a']
这句话就是获得GET的值,将Get看做是在request下的一个数组,而‘a’是一个键,则request.GET[‘a’]对于的就是通过Get方式发送的a的值 -
打开位于learn20160711的urls.py,键入一条路由记录(正则表达式请参见我的另一篇笔记正则表达式基本入门)
4.让我们在cmd中运行此网站。python manage.py runserver
服务启动,输入网址http://127.0.0.1:8000/add/1/1/
得到结果11……为什么是11呢,因为我们传输过去的数据被解析成了字符串,所以是连接状态的。如果想为int,则加上转换就可以完成(转换之后结果如下图……好二)。
- 那么我们总结一下,通过对于View和Urls的改写,可以完成对于路由的控制,那么同样的,在VIew不只是可以通过Http.req返回值,也可以通过模板系统调用HTML页面。详见下一篇文章。(≧▽≦)/
此篇文章主要讲述了:
- Django的 View,和其模板显示
- Session的使用
- 表单与Post传递值
和之前一样,本文主要通过一个小程序的栗子来给大家展示。
- 这个例子主要是现了用户登录功能
- 在用户登录之后页面上显示登录成功与用户名
- 将用户信息记录进SESSION
以下就是栗子~
-
打开CMD,cd进入项目目录
-
django-admin.py startproject learn20160712
新建一个项目工程并cd进入 -
python manage.py startapp learn
新建一个应用 -
在
Setting.py
中添加learn这个应用 -
打开
learn/views.py
增加一个方法:
from django.shortcuts import render def home(request): return render(request, 'home.html')
-
**Django 模板系统,在app下面的templates文件夹中的模板文件。**在learn下建立一个templates的文件夹,在其下建立一个
home.html
,里面内容为我们的登录界面。
将method改写成GET之后就可以通过上一节写过的Get获取值的办法来获得表单中的值。 -
编辑url,代码与正则如下:
- 尝试使用
python manage.py runserver
启动服务,浏览器输入http://127.0.0.1:8000/home/
显示界面如下图:
接着来进行Post的传值方式
- 我们来重写判定方法。首先更改
home.html
中<form method="post">
那么在views.py中,我们重写home方法,通过对其request.method的方法方式进行判定,来控制是执行显示还是执行对于数据的处理。代码如下(此代码中导入的From代码在步骤11处):
-
我们需要在learn下,建立一个forms.py,使用Django的Forms类,代码如下:
from django import forms class Form(forms.Form): username = forms.CharField() password = forms.CharField()
-
同样,将模板
home.html
也改为:
- 运行服务器,输入除去admin与admin的话,返回yaer,以外的值,返回warning。done!