Python 基础知识
- 第一个Python 程序
print("hello world")
print("what is your name")
# 这个函数,可以把键盘中输入的数据拿过来赋给一个变量
myName = input()
print("nice tou meet you," + myName)
print("the length of your name is" + str(myName))
print("what is your age")
# 输入的年龄是个字符串
myAge = input()
print("you will be," + str(int(myAge) + 1) + ",in next year")
- 顺序执行,再加点条件分支的小料
num1, num2 = input("enter 2 numbers").split()
num1 = int(num1)
num2 = int(num2)
sum = num1 + num2
difference = num1 - num2
product = num1 * num2
quotient = num1 / num2
remainder = num1 % num2
print("{} + {}={}".format(num1, num2, sum))
print("{} - {}={}".format(num1, num2, difference))
print("{} * {}={}".format(num1, num2, product))
print("{} / {}={}".format(num1, num2, quotient))
print("{} % {}={}".format(num1, num2, remainder))
if-esle 条件:
name = "Bob"
age = 3000
if name == "Alice":
print("Hi Alice")
elif age < 12:
print("You are not Alice,kiddo.")
elif age > 2000:
print("Unlike you,Alice is not an undead,immortal vampire")
elif age > 100:
print("You are not Alice,gim")
Django 基础
Django 简介
Django
本质上就是一个Web框架。我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。 这样我们就可以自己实现Web框架了。
Django作为一个Python的高级Web框架,功能非常强大,其自身封装了大量底层逻辑,并实现了ORM,同时,MVT结构保证了代码结构的完整性,这一切给了开发人员巨大的便利,让Web开发变得高效且简洁。
Django的基本命令
- django-admin 命令提示
- startproject 创建项目
- startapp 创建应用
- check 校验项目完整性
- runserver 本地简易运行项目
- shell 进入项目的Python Shell 环境
- test 执行Django用例测试
- makemigrations 创建模型变更的迁移文件(数据库相关)
- migrate 执行上一个命令创建的迁移文件(数据库相关)
- dumpdata 把数据库数据导出到文件(数据库相关)
- loaddata 把文件数据导入到数据库(数据库相关)
Django项目 VS Django应用
- 一个Django项目就是一个基于Django的Web应用
- 一个Django应用就是一个可重用的Python软件包
- 每个应用可以自己管理模型、视图、模板、路由和静态文件等
一个Django项目包含一组配置和若干个Django应用
项目示例
Django项目初体验
初识Django项目
项目目录介绍
- settings.py 项目配置文件
- urls.py 项目路由配置文件
- manage.py 项目管理文件(入口)
- wsgi.py Python服务器网关接口
应用目录介绍
- migrations 数据移植(迁移)模块
- apps.py 声明应用的地方
- tests.py 编写应用测试用例的地方(自动化测试模块)
- urls.py (自行创建)管理应用路由的地方
- views.py 视图处理的地方(代码逻辑处理的主要地点)
- models.py 定义应用模型的地方(数据模块,使用ORM框架)
- admin.py 定义Admin模块管理对象的地方(后台管理系统配置)
应用层次的路由配置 新建一个urls.py文件
# 引入刚写的视图文件
import blog.views
# 或者这样引入
# from . import views
# fron blog import views
# import blog.views as bv
# 路由的配置
urlpatterns = [
path("hello world", blog.views.hello_world)
]
项目层次的路由配置 urls.py文件
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path("blog/", include("blog.urls"))
]
把创建的应用添加到配置文件里面 settings.py
INSTALLED_APPS = [
# myapp
'blog.apps.BlogConfig'
开发第一个template
- 在项目的配置文件中注册应用
- 在应用的根目录下,创建名叫templates的目录
- 在该目录下创建HTML文件
- 在views.py中返回render()
def hello(request):
return render(request, 'index.html', {"name": "HTML"})
将数据库中的数据渲染到模板中:
def get_index_page(request):
article = models.Artical.objects.get(pk=1)
return render(request, "index.html", {
"article": article
})
模型层简介
模型层是什么
- 通常,
一个Model对应数据库的一张数据表 - Django中Models以
类的形式表现 - 它包含了一些
基本字段以及数据的一些行为
在 Django中,我们以创建类的形式来创建数据表,因此,我们在编写代码的过程中,我们所有对数据库的操作,事实上都是对类以及类的对象进行操作,我们不需要写任何SQL语句,来和数据库直接进行代码上的操作。那这种方式,或者叫结构、框架就叫ORM。它当然不是Django独创的。
ORM
对象关系映射- 实现了
对象和数据库之间的映射 - 隐藏了数据访问的细节,
不需要编写SQL语句
编写Models
- 在应用根目录下创建
models.py文件,并引入models模块 - 创建类,继承
models.Model,该类即是一张数据表 - 在类中创建字段
模型层的相关配置
settings.py 文件
DATABASES = {
'default': {
# 表示的是django这个项目,它使用的是哪个数据库的驱动
'ENGINE': 'django.db.backends.sqlite3',
# 数据库的名字
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
初识Django Shell
Django Shell 是什么

为什么需要Django Shell

Django Shell的使用-新建一篇文章
进入django shell 环境
python manage.py shell
引入文章模型
from blog.models import Article
新建文章
a=Article()
a.title="Test Django Shell"
a.brief_content="Test Django Shell,By Dongdongqiang Teacher"
a.content="Test Django Shell, New Article, Main content"
把Article的内容打印出来
print(a)
把文章保存到数据库里面
a.save()
怎么确定文章已经保存到数据库里面
articles=Article.objects.all()
article=articles[0]
print(article.title)
初识Django Admin模块
Django Admin模块是什么
- 它是Django自带的一个功能强大的
自动化数据管理界面 - 被授权的用户可直接在Admin中
管理数据库 - Django提供了许多针对Admin的
定制功能
实现博客数据返回页面
定义一个视图函数,返回博客的文章内容
views.py 文件
from blog.models import Article
def article_content(request):
article = Article.objects.all()[0]
title = article.title
brief_content = article.brief_content
content = article.content
article_id = article.artcle_id
publish_date = article.publish_date
# 把它们拼接成一个字符串
return_str = 'title:%s,brief_content:' \
'%s,content:%s,article_id:%s,publish_date:%s' % (title,
brief_content,
content,
article_id,
publish_date)
return HttpResponse(return_str)
完成视图函数后,需要配置下路由
urls.py文件
path('content', blog.views.article_content),
初识Django视图与模板
初识Django的模板系统
模板系统简介
- 视图文件不适合编码HTML

- 页面设计改变需要修改python代码
- 网页逻辑和网页视图应该分开设计
- 模板系统的表现形式是文本
- 分离文档的表现形式和表现内容
- 模板系统定义了特有的标签占位符
基本语法
- 变量标签
{{变量}}
- for 循环标签
{% for x in list %},{% endfor %}
- if-else 分支标签
{% if % },{% else %},{% endif %}
使用模板系统渲染博客页面
页面布局
<div class="container page-header">
</div>
<div class="container page-body">
<div class="row">
<div class="col-md-9" role="main"></div>
<div class="col-md-3" role="complementary"></div>
</div>
</div>
实现文章详情页面的跳转
def get_index_page(request):
all_article = Artical.objects.all()[0]
return render(request, "blog/index.html", {
"article": all_article
})