python-django基础教程

1,安装django : python setup.py install

2,django-admin.py startproject csvt01---》表示新建一个项目csvt01

3,有以下目录:

1,__init__.py    初始化

2,settings.py    django的设置

DEBUG=TRUE   表示开启debug功能

LANGUAGE_CODE=‘zh-cn‘    语言为中文

TIME_ZONE=‘Asia/Shanghai’地区为中国上海

INSTALLED_APPS      把用户的应用添加到此中,本例为blog

‘blog’,

3,urls.py        url配置文件

url(r‘^blog/index/$‘,‘blog.views.index‘),   -->此为映射测试。意为访问csvt01的blog的index则转移到blog(app)的views.index

4,manage.py      管理配置

4,django-admin.py startapp blog   -->新建app,名为blog。同上一样.进入工程目录下创建

1,编辑blog目录下的views.py文件

定义一个方法

from django.http import HttpResponse

def index(req):

return HttpResponse(‘<h1>welcome to django </h1>‘)

2,使用命令 python manage.py runserver启动服务

5,建立模板集合  blog/templates。并把需要发布的文件移动到此,本例为hello.html

6,静态加载模板文件   vim blog/views.py

方法一:

from django.template import loader,Context   --》导入模板模块

def index(req):

t=loader.get_tempplate(‘hello.html‘) --》加载模版文件

c=Context({})   --

return HttpResponse(t.render(c))  -->渲染context数据,然后通过response返回

方法二:from django.shortcuts import render_to_response

def index(req):

return render_to_response(‘index.html‘,{})

7,动态加载文件(配合字典使用)

在源文件中使用变量,在映射的文件中views.py定义变量

还可以使用字典,key作为变量

动态变量为用大括号包住: 例: {{title}},{{user}}

方法三:from django.shortcuts import render_to_response

def index(req):

return render_to_response(‘index.html‘,{‘title‘:‘my page‘,‘user‘:‘tom‘})

方法四:from django.shortcuts import render_to_response

def index(req):

user={‘age‘:23,‘name‘:‘tom‘,‘sex‘:‘male‘}

return render_to_response(‘index.html‘,{‘title‘:‘my page‘,‘user‘:user})

可以在原动态变量文件中直接引用:例: user.name 等等

方法五:

class Person(object):

def __init__(self,name,age,sex):

self.name=name

self.age=age

self.sex=sex

def say(self):

return “i‘m”+self.name

def index(req):

user=Person(‘tom‘,24,‘male‘)

return render_to_response(‘index.html‘,{‘title‘:‘my page‘,‘user‘:user})

8,模板标签的使用。在模板文件中配置。index.html

1,{% if user %}    if中的and和or不能直接连用;bool;==,!=;in,not in;

<li>name:{{user.name}}</li>

{% else %}

用户不存在

{% endif %}

2,{% for  book in book_list %}

........

{% empty %}

........

{% endfor %}

例:{% for k,v in user.items %}

<li>{{k}}:{{v}}</li>

9,URLconfig   urls.py文件

使用方式;

1,url(r‘^blog/index/$‘,‘blog.views.index‘),正则表达式

2,from blog.views import index   直接导入的方式

url(r‘^blog/index/$‘,index),

3,urlpatterns=patterns(‘blog.views‘,

url(r‘^blog/index/$‘,‘index‘),

)

4,urlpatterns=patterns(‘blog.views‘,

url(r‘^blog/index/\d{2}/$‘,‘index‘),

)

5,urlpatterns=patterns(‘blog.views‘,

url(r‘^blog/index/?P<id>\d{2}/$‘,‘index‘),  -->参数分组id

10,模板的使用

1,新建项目

2,进入项目,创建应用blog

3,配置settings.py文件。添加应用

4,进入到应用目录中,创建一个默认的文本目录templates

5,编辑urls.py。建立一个测试的url. url(r‘^index/$‘,‘blog.views.index‘)

6,编辑应用下面的views.py文件,创建index方法

模板的使用步骤:

1,模板文件的加载

from django.template import loader,Context

from django.http import HttpResponse

def index(req):

t=loader.get_template(‘index.html‘)  ->载入模板文件。需要建立文件

c=Context({‘uname‘:‘alen‘}) ->创建context对象,变量(字典)渲染。此处uname为key.

html=t.render(c)  ->渲染数据

return HttpResponse(html)  ->输出

也可以使用shell测试。

ipython manage.py shell

2,直接使用template类

from django.template import Template,Context

def index(req):

t=Template(‘<h1>{{uname}}</h1>‘)

c=Context({‘uname‘:‘csvt‘})

return HttpResponse(t.render(c))

3,使用render_to_response方法

from django.shortcuts import render_to_response

def index(req):

return render_to_response(‘index.html‘,{‘uname‘:‘csvt02‘})   --->参数一为模板文件,参数二为渲染的变量

11,数据库的基本使用

安装数据库:yum -y install mysql*

启动数据库:service mysqld start。

使用root用户登录数据库:mysql -uroot -p。

创建数据库

create database csvt default charset=utf8

安装MySQL-python.在python下,import MySQLdb.连接数据库

1,创建新工程,进入工程并创建应用

2,配置settings。添加应用,添加数据库 。

在默认的引擎下把mysql添加上

name项添加database名csvt

用户名root

password,host,port可以使用默认。mysql端口默认为3306

3,编辑应用目录下的models.py文件

class Employee(models.Model):    -->当数据库同步后,此为一张表,表名为应用名+类名

name=models.CharField(max_length=20)

4,数据库同步.会创建多个表(重要为blog_employe)

python manage.py syncdb   -->自动检测应用,检查应用下是否有models,如果有则自动创建表

5,使用数据库use csvt

show tables;desc blog_employee

12,数据库的基本使用2:

python manage.py shell -->进入python的交互界面

配置数据库记录方式一:

1,导入类对象: from app1.models import Employee

2,创建实例对象:emp=Employee()

3,创建属性: emp.name=‘alen‘

4,保存: emp.save()

配置数据库记录方式二;

1,实例化对象:emp=Employee(name=‘tom‘)

2,保存:emp.save()

配置数据库记录方式三:

1,直接通过类方法:Employee.objects.create(name=‘max‘)

查看:

emps=Employee.objects.all()

emps

emps[0].id[name]

在类文件app1.models.py中增加方法:

def __unicode__(self):

return self.name

然后再次查看

使得在浏览器上可以查看:

在url文件中新增记录:

url(r‘^index/$‘,‘app1.views.index‘)

然后在app1的views文件下,定义index方法:

from app1.models import Employee

from django.shortcuts import render_to_response

def index(req):

emps=Employee.objects.all() -->获取记录

return render_to_response(‘index.html‘,{‘emps‘:emps})  -->渲染数据

接着创建模版集template/index.html

编辑配置模板文件index.html

可以配合模板标签,规范显示

{% for emp in emps %}

<div>{{forloop.counter}}{{emp}}</div>

{% endfor %}

<div>共有{{emps.length}}记录</div>

13,model之间的关系

1,manytoone:多对一

1,创建项目,进入项目内创建app,修改settings文件,配置db数据库,apps添加

2,配置model对象:

class Entry(models.Model):

name=models.CharField(max_length=30)

def __unicode__(self):

return self.name

class Blog(models.Model):

name=models.CharField(max_length=30)

entry=models.ForeignKey(Entry)  -->此处Entry为one

def __unicode__(self):

return self.name

3,进入数据库,创建数据库

4,数据库同步 python manage.py syncdb

5,进入交互界面 python manage.py shell

from blog.models import Entry,Blog

entry1=Entry.objects.create(name=‘alen‘) -->首先创建one对象

entry2=Entry.objects.create(name=‘max‘)

entry3=Entry.objects.create(name=‘max1‘)

blog1=Blog.objects.create(name=‘alen-blog‘,entry=entry1)

blog1查找;

blog1.entry   ;   blog_entry_id  -->many端进行的查询

entry1.blog_set.all()  -->one端进行的查询

14,后台管理数据库

1,创建工程csvt05,进入工程目录;创建应用blog,配置settings文件,数据库为sqlite3;添加应用

然后把django.contrib.admin应用启用

2,修改url.py文件.加入一下内容

from django.contrib import admin

admin.autodiscover()

url(r‘^admin/‘,include(admin.site.urls))

3,修改models文件:

from django.db import models

sex_choices=(

(‘f‘,‘female‘),

(‘m‘,‘male‘),

)

class User(models.Model):

name=models.CharField(max_length=20)

sex=models.CharField(max_length=1,choices=sex_choices)

def __unicode__(self):

return self.name

4,数据库的同步 python manage.py syncdb

5,运行开发服务器 python manage.py runserver

6,创建文件 blog/admin.py

from django.contrib import admin

from blog.models import User

admin.site.register(User)

7,测试

sqlite3 csvt04.db

.help查看帮助

.tables显示所有表

15,model中多对多的关系

1,创建工程,进入工程目录,创建应用;修改settings,设置数据库sqlite3,加入应用admin及需要的应用

2,编辑models,

from django.db import models

class Author(models.Model):

name=models.CharField(max_length=20)

def __unicode__(self):

return self.name

class Book(models.Model):

name=models.CharField(max_length=30)

authors=models.ManyToManyField(Author)

def __unicode__(self):

3,数据库同步 python manage.py syncdb

4,进入数据库 sqlite3 db

5,管理数据.

进入解释器 python manage.py shell

from blog.models import Author,Book

Author.objects.create(name=‘alen‘)

Author.objects.create(name=‘ben‘)

Author.objects.create(name=‘carl‘)

authors=Author.objects.all()

b1=Book()

b1.name=‘python book1‘

b1.save()

alen=Author.objects.get(name__exact=‘alen‘)  =====alen=authors[0]-->获取作者

b1.authors.add(alen) -->添加书的作者为alen

b1.authors.add(authors[1]) -->添加书的作者

b1.authors.all() -->查看b1的所有作者

b1.authors.remove(alen) -->删除作者

b1.authors.filter(name__exact=‘carl‘)

alen.book_set.all()   -->查看alen的所有书

alen.book_set.add(b1) -->alen添加一本书b1

alen.book_set.create(name=‘python book2‘)  ->添加书

books=Book.objects.all()   -->查看所有书

alen.book_set.remove(books[0])  -->删除书

16,数据呈现在页面

承接上文内容

for author in Author.objects.all():

for book in author.book_set.all():

print book

1,创建模板目录,并创建模板文件show_author.html

{% for author in authors %}

<div>

<h3>{{author.name}}</h3>

{% for book in author.book_set.all() %}

<li>{{ book }}</li>

{% endfor %}

</div>

模板文件show_book.html

{% for book in books %}

<div>

<h1>{{book.name}}</h1>

{% for author in book.authors.all %}

<li>{{author}}</li>

{% endfor %}

</div>

2,编辑views.py

from blog.models import Author,Book

from django.shortcuts import render_to_response

def show_author(req):

authors =Author.objects.all()

return render_to_response(‘show_author.html‘,{‘authors‘:authors})

def show_book(req):

books =Book.objects.all()

return render_to_response(‘show_book.html‘,{‘books‘:books})

3,配置url.py文件

url(r‘^blog/show_author/$‘,‘blog.views.show_author‘)

url(r‘^blog/show_book/$‘,‘blog.views.show_book‘)

4,开启开发服务器 python manage.py runserver

17,表单form

1,创建项目,进入该目录,创建应用;修改settings文件sqlite3,name,app添加

2,编辑url文件

url(r‘^blog/register/$‘,‘blog.views.register‘)

3,编写views文件

from django import forms

from django.http import HttpResponse

from django.shortcuts import render_to_response

class UserForm(forms.Form)

name=forms.CharField()

def register(req):

if req.method==‘POST‘  -->数据提交动作

form = UserForm(req.POST)  -->绑定数据

if form.is_valid():

print form.cleaned_data ->数据获取

return HttpResponse(‘ok‘)

else:     -->数据获取动作(get)

form =UseForm()

return render_to_response(‘register.html‘,{‘form‘:form})

4,创建模板文件register.html

<body>

<form method="post">

{{form}}

<input type="submit" value="ok">

</form>

</body>

5,启动服务python manage.py runserver

6,配置settings文件,把MIDDLEWARE_CLASSES中的csrf那行注释掉

时间: 2024-12-10 19:33:57

python-django基础教程的相关文章

Django 基础教程

Django 基础教程 这是第一篇 Django 简介 ?  Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! 你一定可以学会,Django 很简单!本教程一直在更新,从开始写到现在大概写了一年多了,现在也一直在坚持写,每一篇教程都可能随时更新,可以在网站首页看到最近更新的情况. 我阅读学习了全部的 Django英文的官方文档,觉得国内比较好的Django学习资源不多,所以决定写自己的教程.本教程开始写的时候是 Django 的版本是 1.6,

《Python机器学习基础教程》高清版免费PDF下载

Python机器学习基础教程-[德] 安德里亚斯·穆勒(Andreas C.Müller)[美]莎拉·吉多(Sarah Guido) 著,张亮(hysic) 译 下载地址1:网盘下载 下载地址2:网盘下载 内容简介本书是机器学习入门书,以Python语言介绍.主要内容包括:机器学习的基本概念及其应用:实践中常用的机器学习算法以及这些算法的优缺点:在机器学习中待处理数据的呈现方式的重要性,以及应重点关注数据的哪些方面:模型评估和调参的方法,重点讲解交叉验证和网格搜索:管道的概念:如何将前面各章的方

分享《Python数据分析基础教程:NumPy学习指南(第2版)》高清中文PDF+英文PDF+源代码

下载:https://pan.baidu.com/s/1YSD97Gd3gmmPmNkvuG0eew更多资料分享:http://blog.51cto.com/3215120 <Python数据分析基础教程:NumPy学习指南(第2版)>高清中文PDF+高清英文PDF+源代码 高清中文版PDF,249页,带目录和书签,文字能够复制粘贴:高清英文版PDF,310页,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中高清中文版如图: 原文地址:http://

《Python机器学习基础教程》高清中文版PDF+高清英文版PDF+源代码

资源链接:https://pan.baidu.com/s/1sa64QTsQ7A5WlZxMuNmYHg<Python机器学习基础教程>高清中文版PDF+高清英文版PDF+源代码高清中文版PDF,306页,带目录和书签,文字能够复制粘贴:高清英文版PDF,392页,带目录和书签,彩色配图,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中,高清中文版如图: 原文地址:http://blog.51cto.com/14063572/2317004

Python机器学习基础教程

介绍 本系列教程基本就是搬运<Python机器学习基础教程>里面的实例. Github仓库 使用 jupyternote book 是一个很好的快速构建代码的选择,本系列教程都能在我的Github仓库找到对应的 jupyter notebook . Github仓库:https://github.com/Holy-Shine/Introduciton-2-ML-with-Python-notebook 系列教程入口 Python机器学习基础教程-第一章-鸢尾花的例子KNN 原文地址:https

Numpy学习:《Python数据分析基础教程NumPy学习指南第2版》中文PDF+英文PDF+代码

NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算性能,不仅可以取代Matlab和Mathematica的许多功能,而且业已成为Python科学计算生态系统的重要组成部分.但与这些商业产品不同,它是免费的开源软件. 推荐学习<Python数据分析基础教程NumPy学习指南第2版>,通过书中丰富的示例,学会Matplotlib绘图,并结合使用其他Python科学计算库(如SciPy和Scikits),让工作更有成效,让代码更加简洁而高效. 学习参考: &l

python机器学习基础教程-鸢尾花分类

一: 环境准备: 1.导入的库: import numpy as np import matplotlib.pyplot as plt import pandas as pd import mglearn 2.导入数据集 from sklearn.datasets import load_iris iris_dataset = load_iris() 二. 划分训练数据和测试数据 1. train_test_split: 将数据集打乱并进行拆分 from sklearn.model_select

段小手《深入浅出Python机器学习》PDF+代码+《Python机器学习基础教程》高清中英文PDF代码+张亮

机器学习正在迅速改变我们的世界.我们几乎每天都会读到机器学习如何改变日常的生活.如果你在淘宝或者京东这样的电子商务网站购买商品,或者在爱奇艺或是腾讯视频这样的视频网站观看节目,甚至只是进行一次百度搜索,就已经触碰到了机器学习的应用.使用这些服务的用户会产生数据,这些数据会被收集,在进行预处理之后用来训练模型,而模型会通过这些数据来提供更好的用户体验. 此外,目前还有很多使用机器学习技术的产品或服务即将在我们的生活当中普及,如能够解放双手的无人驾驶汽车.聪明伶俐的智能家居产品.善解人意的导购机器人

机器学习资料《分布式机器学习算法理论与实践》+《白话机器学习算法》+《Python机器学习基础教程》

机器学习正在迅速改变我们的世界.我们几乎每天都会读到机器学习如何改变日常的生活. 人工智能和大数据时代,解决最有挑战性问题的主流方案是分布式机器学习! <分布式机器学习:算法.理论与实践>电子书资料全面介绍分布式机器学习的现状,深入分析其中的核心技术问题,并且讨论该领域未来的发展方向. 我认为第3章到第8章是核心,讲解分布式机器学习的框架及其各个功能,分别针对其中的数据与模型划分模块.单机优化模块.通信模块.数据与模型聚合模块加以介绍.最有用的是第9章,学习由分布式机器学习框架中不同选项所组合

Python的基础教程,比PHP、GO等前景好的一门开发语言!

Python代表了将来很长一段时间技术走向,其在人工智能和网络爬虫.大数据分析等科学领域是有很大的优势的. 代表方向 人工智能 Python 何为Python Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. 学习步骤 1.Python IDE,本文为大家推荐