Django快速入门

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命令切换用户并进行用户进组的添加)

  1. 一般Python已经安装(如果没有安装使用,ubuntu下的apt-get install 进行安装)
  2. 有可能也已经安装上了,安装pip(apt-get install python-pip
  3. 一般ipython也有可能装上了,没安装接着安装
  4. 直接使用命令pip install Django==1.9.7进行安装,如果安装不成功则使用步骤五进行安装
  5. 在git上下载其源码,下载地址
  6. 下载在本地之后,cd 进此下载目录,执行python setup.py install进行安装
    安装完成.PNG
    安装完成。

Windows下的安装

Python下载和pip等安装大同小异,所以在此不再繁述。但是需要将此Python的路径放入系统的Path路径中(到处都是教程,百度一下就好)。
  • 安装完毕环境之后,也是下载其源码 下载在本地之后,cd 进此下载目录,执行python setup.py install进行安装
    安装完成.PNG
    安装完成。
  • 需要将Django的bin路径也添加入系统变量中(这个目录实在Python的lib目录中的site-package中的Django的bin ),才能使用django-admin命令新建项目。

##测试

  • 找到自己的一个空目录作为项目目录,再此目录上键入django-admin.py startproject mysite,则建立好一个简单的项目名为mysite的项目。
  • 进入 mysite文件夹中,使用python manage.py进行帮助的查看。
  • 使用python manage.py runserver开启应用。

开启应用.PNG

已经在前一篇搭建好了Django的环境,可以以一个小应用进行Django的入门。

  • 测试搭建好的开发环境

使用python manage.py runserver开启应用
因为默认开启的是本机的 127.0.0.1:8000 IP和端口,那么打开浏览器键入地址之后可见。

安装完默认界面.PNG

话说这个Markdown编辑器的图片上传功能不错~

同时在命令行窗口也接到了一个Get请求
命令行服务器状态.PNG

如果不知道什么是Get/Post的话,请点击,一点关于RESTful的知识

  • 开始开发新应用

  • 每个Django都是遵守约定且包含一个Python包。 Django自带一个工具,它可以自动生成应用的基本目录结构,这样你就能专心于书写代码而不是创建目录。

首先我们需要建立一个应用。python manage.py startapp learn
什么是应用,应用和服务器有什么关系。

应用是一个Web应用程序,它完成具体的事项 —— 比如一个博客系统、一个存储公共档案的数据库或者一个简单的投票应用。 项目是一个特定网站中相关配置和应用的集合。一个项目可以包含多个应用。一个应用可以运用到多个项目中。
p.s:上面的话来自于http://python.usyiyi.cn (o)/~
开发服务器会根据需要自动重新载入Python代码。 你不必为了使更改的代码生效而重启服务器。 然而,一些行为比如添加文件,不会触发服务器的重启,所以在这种情况下你需要手动重启服务器。

  • 为什么手贱关掉浏览器,好不容易打了那么多字都木有了呢……/(ㄒoㄒ)/~~我辛辛苦苦撸的字啊……(╯‵□′)╯︵┻━┻*

重新写吧……

那么开始开发我们自己的一个博客系统

  1. 初始化一个project
  • win+r,运行cmd,进入你需要建立的目录,键入django_admin.py startproject blog

2.初始化一个app

  • cd命令进入blog文件夹,键入命令 python startapp myapp

3.进入blog/setting.py配置

  • 如图:
    INSTALLED_APPS.PNG
  1. 新建Models
  • 我们简历最基础的博客系统,建立一个Article类,只需要title,content,date,具体代码如图:
    ArticleModels.PNG
    p.s unicode方法主要是为了在界面上返回值是文章的主题,而不是自身的类型,可以不需要此函数。
  1. 自动建立表
  • python manage.py migrate命令。
    ArticleModels.PNG
    具体的模型操作修改如下
  • 模型

模型的编写,主要是对于数据库的修改,在Django中,默认使用SQLite,主要分为三步:

  • 修改你的模型(在learn/models.py文件中)。
  • 运行python manage.py makemigrations ,为这些修改创建迁移文件。
  • 运行python manage.py migrate ,将这些改变更新到数据库中。
  1. 自动建立后台系统
  • python manage.py createsuperuser这个命令就可以获得一个功能强大的后台管理系统,并且此系统一开始会让你输入用户名与密码等(这里密码需要选择比较复杂的8位以上,否则如图:)
    
![Uploading python manage.py migrate_355166.PNG . . .]
  1. 注册此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
  1. 我们通过一个简单的小程序进行Get的获取
  • cd 进入你需要建立项目的目录中
  • 使用django-admin.py startproject learn20160711新建工程
  • 使用python manage.py startapp learn新建一个应用
  • 使用PyCharm打开工程。将定义的app加到settings.py中的INSTALL_APPS中。
    将learn插入.PNG
    (* ̄(oo) ̄):如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件**(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)
  1. 打开learn中的view层,我们写一个简单的加法函数,如下图:
    02views.PNG
    注:此函数中request.GET['a']这句话就是获得GET的值,将Get看做是在request下的一个数组,而‘a’是一个键,则request.GET[‘a’]对于的就是通过Get方式发送的a的值

  2. 打开位于learn20160711的urls.py,键入一条路由记录(正则表达式请参见我的另一篇笔记正则表达式基本入门

02urls.PNG

4.让我们在cmd中运行此网站。python manage.py runserver服务启动,输入网址http://127.0.0.1:8000/add/1/1/得到结果11……为什么是11呢,因为我们传输过去的数据被解析成了字符串,所以是连接状态的。如果想为int,则加上转换就可以完成(转换之后结果如下图……好二)。
02结果.png

  1. 那么我们总结一下,通过对于View和Urls的改写,可以完成对于路由的控制,那么同样的,在VIew不只是可以通过Http.req返回值,也可以通过模板系统调用HTML页面。详见下一篇文章。(≧▽≦)/

此篇文章主要讲述了:

  • Django的 View,和其模板显示
  • Session的使用
  • 表单与Post传递值

和之前一样,本文主要通过一个小程序的栗子来给大家展示。

  • 这个例子主要是现了用户登录功能
  • 在用户登录之后页面上显示登录成功与用户名
  • 将用户信息记录进SESSION

以下就是栗子~

  1. 打开CMD,cd进入项目目录

  2. django-admin.py startproject learn20160712 新建一个项目工程并cd进入

  3. python manage.py startapp learn新建一个应用

  4. Setting.py中添加learn这个应用

  5. 打开learn/views.py增加一个方法:
    from django.shortcuts import render def home(request): return render(request, 'home.html')

  6. **Django 模板系统,在app下面的templates文件夹中的模板文件。**在learn下建立一个templates的文件夹,在其下建立一个home.html,里面内容为我们的登录界面。
    03homehtml.PNG
    将method改写成GET之后就可以通过上一节写过的Get获取值的办法来获得表单中的值。

  7. 编辑url,代码与正则如下:

03urls.PNG

  1. 尝试使用python manage.py runserver启动服务,浏览器输入http://127.0.0.1:8000/home/显示界面如下图:

03home.PNG

接着来进行Post的传值方式
  1. 我们来重写判定方法。首先更改home.html<form method="post">那么在views.py中,我们重写home方法,通过对其request.method的方法方式进行判定,来控制是执行显示还是执行对于数据的处理。代码如下(此代码中导入的From代码在步骤11处):

03home重写.PNG

  1. 我们需要在learn下,建立一个forms.py,使用Django的Forms类,代码如下:
    from django import forms class Form(forms.Form): username = forms.CharField() password = forms.CharField()

  2. 同样,将模板home.html也改为:

03home重写.PNG

  1. 运行服务器,输入除去admin与admin的话,返回yaer,以外的值,返回warning。done!

03test.PNG

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值