上一篇写socket实例的时候切身感受到了python的简单,于是最近想写一些关于python的文章。那就像之前的那些文章那样,整个入门教程吧。
前言
写这篇基本是没有自己的思想的,纯粹是为了学习python,所以下面的内容基本都是从别处搬来的。网上有两篇写的很好的python学习的中文教程,一篇是廖雪峰的,一篇是Vamei的。这两篇对我学习python帮助巨大,但我这篇不想抄他们的。
我要抄的是一本叫做Python Web Development with Django
书上的,这本书是外国人写的介绍Django开发Web程序的(书比较老了,写例子时要改成较新的),这里直接照搬其第一部分,作为Python的入门文章,所以有了这篇的题目。
Python练习
Python是编程新手的最好的语言,因为它足够简单。
直接上个代码感受下吧。
1 | print 'hello, world.' |
基础
注释
1 | # this entire line is a comment |
变量及赋值
1 | foo = 'bar' |
运算符:算数运算符+-*/
等,赋值运算符+=,-=,*=
等(不支持++,–),关系运算符<,>=,==,!=
等,逻辑运算符and,or,not
1 | show_output = True |
标准类型
布尔型
1 | False download_complete = |
数值型:两种主要的数值类型int
和float
1 | 1/2 |
序列和迭代
字符串
1 | 'Python' s= |
列表
1 | 'Python','Development',8] book=[ |
字符串函数
1 | 'Django is cool' s= |
字符串其他
1 | u'This is unicode' mystr= |
元组
1 | "one","two") a=( |
字典
1 | 'title':'Python Web Development','year':2008} book={ |
流程控制
条件判断
1 | data = raw_input('Enter "y" or "n": ') |
循环
1 | i = 0 |
异常捕获
1 | try: |
finally
1 | try: |
省事的写法
1 | try: |
抛出异常
1 | def foo(must_be_positive_int): |
文件操作
1 | f = open('1.txt', 'w') |
函数
函数声明和调用
1 | def foo(x): |
一个有用的函数
1 | import httplib |
一个默认参数的例子
1 | def func(arg=[]): |
函数引用
1 | def bar(): |
匿名函数
1 | 'bruce','li'),('jack','cheng'),('jet','li'),('danniel','yin')] starList=[( |
可变参数
1 | def fun1(a,b,c): |
装饰器
1 | def foo(): |
面向对象
类定义
1 | class AddressBookEntry(object): |
类继承
1 | class EmployeeAddressBookEntry(AddressBookEntry): |
内部类
1 | class MyClass(object): |
总结
以上是Python的入门教程,后面介绍Django入门。
Django快速上手
Django声称自己是目前最完美的Web开发框架。本章整一个使用Django建立Blog站点的例子,看看Django到底怎么完美了。
安装
我的python版本
1 | C:\Users\Administrator>python --version |
常用安装方式
1 | > pip install Django #安装最新版本 |
我的网络不行,于是我是这么装的
1 | #解压安装包Django-1.8.2.tar.gz |
验证安装是否成功
1 | > python -c "import django;print django.VERSION" |
搭建博客
前面一直是在windows下写的,到这里突然发现在windows下来回切换目录还挺费劲,于是转到linux下了。这是我linux的环境:
1 | $ python -V |
下面是建立博客站点的过程。
创建工程
执行如下命令创建工程mysite:
1 | $ django-admin startproject mysite |
创建成功后看看工程目录结构
1 | $ tree mysite |
相关文件在后面会用到,这里就不介绍了。
运行开发服务
执行命令运行工程。
1 | $ cd mysite |
执行后会显示如下信息:
1 | May 11, 2018 - 08:15:26 |
创建博客应用
执行命令创建博客应用。
1 | $ python manage.py startapp blog |
这时会在工程目录mysite下生成出一个blog应用目录,默认也建立好了几个文件。
创建模型
创建模型就是到blog目录下修改models.py文件,修改内容如下:
vim blog/models.py
1
2
3
4
5
6
7
8
9
10 # -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class BlogPost(models.Model):
title = models.CharField(max_length=150)
body = models.TextField()
timestamp = models.DateTimeField()
设置数据库
首先要对mysite/settings.py
做一处修改,加入blog应用。
1 | INSTALLED_APPS = [ |
然后还是修改该配置文件,修改数据库(这里用的是默认的sqlite3):
1 | DATABASES = { |
创建相关表
执行命令:
1 | $ python manage.py migrate |
这样会根据之前创建的模型自动创建数据库表。
admin
修改blog/admin.py
,修改如下:
1 | # -*- coding: utf-8 -*- |
执行命令创建超级用户:
1 | $ python manage.py createsuperuser |
查看mysite/urls.py
下是否有相应记录。
1 | from django.conf.urls import url |
这样后就可以用创建的用户登录网站进行BlogPost数据表管理了http://localhost:8000/admin
。
制作博客显示页
在blog目录下创建templates
目录,在其下创建模板文件。
base.html
1
2
3
4
5
6
7
8
9
10
11
12
13 <html>
<style type="text/css">
body { color: #efd; background: #453; padding: 0 5em; margin: 0 }
h1 { padding: 2em 1em; background: #675 }
h2 { color: #bf8; border-top: 1px dotted #fff; margin-top: 2em }
p { margin: 1em 0 }
</style>
<body>
<h1>mysite.example.com</h1>
{% block content %}
{% endblock %}
</body>
</html>
archive.html
1
2
3
4
5
6
7
8 {% extends "base.html" %}
{% block content %}
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.timestamp }}</p>
<p>{{ post.body }}</p>
{% endfor %}
{% endblock %}
编写视图方法,修改blog/views.py
文件:
1 | # -*- coding: utf-8 -*- |
修改mysite/urls.py
,添加访问路径。
1 | urlpatterns = [ |
修改blog/urls.py
文件,添加访问路径。
1 | urlpatterns = [ |
好了,可以访问了,输入网址http://localhost:8000/blog/