Django入门 -- 框架操作基本流程

-- 入门

1
2
3
4
5
6
7
8
9
# Django开发流程:
# 1.创建虚拟环境;
# 2.安装django;
# 3.创建项目;
# 4.创建应用;
# 5.在models.py中定义模型类,为视图提供数据;
# 6.定义视图,处理浏览器请求
# 7.配置URL
# 8.创建模板,呈现数据


-- 虚拟环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 针对python不同项目,而对应安装的一堆包的集合;
-- ubuntu中安装虚拟环境的命令(安装两个虚拟环境包,第二个是简易化操作)
    sudo pip install virtualenv
sudo pip install virtualenvwrapper  
-- 创建虚拟环境
mkvirtualenv 环境名称
mkvirtualenv py_django
-- 查看与使用虚拟环境
workon 两次tab键
workon py_django
-- 删除虚拟环境
rmvirtualenv 虚拟环境名称
先退出:deactivate
再删除:rmvirtualenv py_django
# 在创建虚拟环境过程中,在home目录下的.virtualenvs文件下,
# 会生成刚创建的虚拟环境,而且过程中系统会默认生成多个包,
# 以及将usr/bin/文件下的python文件复制到这个虚拟环境包里
# 的/bin文件下;
-- 查看当前所有的包
pip list 或者pip freeze
# 或者:~/.virtualenvs/py_django/lib/python2.7/site-packages下
# 查看所有的包
-- 虚拟环境下安装包
pip install 包名称
安装django1.8.2的包
pip install django==1.8.2

-- 创建项目(图书,英雄,一对多的关系)

1
2
3
4
5
6
7
8
9
# 在Desktop下创建,不会出现权限问题;
django-admin startproject 项目名称
--tree
-- manage.py 是项目运行入口,指定配置文件路径;
-- test1 包含项目的配置文件;
-- __init__表示这个目录当作包使用;
-- settings.py 是整体配置文件;
-- urls.py 是URL配置文件;
-- wsgi.py 是与WSGI兼容的web服务器入口;

-- 创建应用

1
2
3
4
5
6
7
8
python manage.py startapp booktest(应用名称)
-- booktest
-- admin.py
--__init__.py
-- migrations 
-- __init__.py
-- models.py  # 不许要手动到数据库中操作,直接在这个文件汇总添加类;
-- tests.py

-- 添加/安装应用

1
2
3
4
5
6
在test1/settings.py中INSTALLED_APPS下添加应用名称就可以安装;
'bootest';
# 开启服务器(同时生成一个sql数据库)
# python manage.py runserver ip:端口
# 1.ip可以不写;
# 2.默认端口为8000


-- 模型设计

-- 创建模型类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- ORM框架 将python的对象转换成数据库中sql的操作;
# 通过自定义模型类和对象,完成对数据库的操作
-- 在manage.py中设置环境变量,用settings控制管理整个项目;(默认已经设置)
os.environ.setdefault("DJANGO_SETTINGS_MODULE""test1.settings")
-- models.py
# 定义类时,需要继承models.Model类;
# class BookInfo(models.Model):
btitle = models.CharField(max_length=20)  # 设置字符长度;
bpubdate = models.DateField()  # 设置日期格式;
# class HeroInfo(models.Model):
hname = models.CharField(max_length=20)
hcontent = models.CharField(max_length=100)
hgender = models.BooleanField(default=True)  # 设置布尔类型;
hbook = models.ForeignKey(BookInfo)  # 设置外键对象;
-- 查看迁移文件对应的sql语句
python manage.py sqlmigrate news 0001
-- 生成迁移文件(相当于生成sql语句,以及执行)
# 根据模型类与属性,确定表结构,生成文件;
# 执行迁移;
生成:python manage.py makemigrations(执行sql语句)
# 会在migrations文件下,0001_initial.py的文件,__init__.py
# 里面是类似于sql语句的代码;
执行:python manage.py migrate(创建表结构)
# 生成__init__.pyc文件

-- 使用模型类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- 进入项目的shell,进行简单的API操作
python manage.py shell
# 在模块中引入类对象,再进行操作;
from booktest.models import BookInfo
-- 在shell下对数据进行增删改查(忽略)
BookInfo.objects.all()  # 查询所有;
# 创建对象
b=BookInfo()
b.title='射雕英雄传'
from datetime import date
b.pub_date=date(2017,1,1)
b.save()  # 保存数据;
# 创建/获取指定对象
b=BookInfo.objects.get(id=1)
b.title='神雕侠侣'
b.save()
...

-- 后台管理(CMS内容管理系统)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- 创建管理员
-- 注册用户
python manage.py createsuperuser
# 用户名默认:python;密码:chuanzhi
-- 进入后台管理页面
# 修改界面语言(默认英文)
settings.py文件中修改成 LANGUAGE = 'zh-Hans';TIME_ZONE = 'Asia/Shanghai'
# 在.virtualenvs/py_django/lib/python2.7/site-packages/django/contrib/admin/locale/文件下
-- 启动服务器,浏览
python manage.py runserver
http://127.0.0.1:8000/admin
-- 注册 admin.py(注册模型类,将model.py创建的类引入后台)
引入模型类
from models import *
admin.site.register(BookInfo)
admin.site.register(HeroInfo)
# str方法中,使用了中文,需要在models中str方法下的属性encode("utf-8")
-- 支持自定义(在后台显示所有属性,继承admin.ModelAdmin类)
class BookInfoAdmin(admin.ModelAdmin):
list_display = ['id''title''pub_date']
class HeroInfoAdmin(admin.ModelAdmin):
list_display = ['id''name''content''gender''book']
# 将添加属性的类添加到注册中;
admin.site.register(BookInfo, BookInfoAdmin)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--视图
-- 定义视图函数(接受request,返回HttpResponse)
# view
# 本质就是一个函数;
# 封装所有信息;
from django.http import HttpResponse
# 必须传入HttpRquest对象的request,返回HttpResonse对象;
def index(request):
return HttpResponse('hello world')
-- 配置URLconf(找到对应视图函数)
# 找到视图的过程:
# 用户在浏览器输入url地址,请求访问网站后,服务器后台接受到信息,
# 然后与写好的URLconf逐一匹配,如果匹配到就调用;没有就返回404错误;
-- URLconf 编写规则
1.使用正则表达式定义;
2.使用view.py中定义的视图
-- URLconf 配置过程
1.在自己创建的应用(booktest)中创建urls.py文件,配置URLconf,定义;
from django.conf.urls import url
from . import views
urlpatterns = [url(r'^$', view.index),] # view.index调用视图模块中定义的index函数;
2.在项目中的url.py,链接到应用的URLconf中;
url(r'^', include('booktest.urls')),
# 其完整代码
from django.conf.urls import include, url
from django.contreib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls))
url(r'^', include('booktest.urls')),
]
# 请求访问:127.0.0.1:8000

-- 模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 在Django中,将前端内容定义在模板中,再把模板交给视图调用;
-- 创建模板
# 在项目目录下创建模板文件夹templates,并在其中创建与应用
# 同名的文件存放模板文件;
-- 视图中寻找模板
-- 在settings.py中做设置,为了找到templates模板文件位置
'DIRS':[os.path.join(BASE_DIR, 'templates')],  # 拼接templates文件夹所在位置;
-- 在views.py中加载渲染模板
def index(request):
cag = NewsCategory.objects.get(pk=1# pk(primary key)相当于Id
data = {'cag': cag.cag_name}
tpl = loader.get_template('index.html')
new_tpl = tpl.render(data)
return HttpResponse(new_tpl)
# 简写成一下操作: 
def index(request):
return render(request, 'booktest/index.html')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拟合与岭回归

目录 拟合与岭回归 1 什么是过拟合与欠拟合 2 模型复杂度 3 鉴别欠拟合与过拟合 4 过拟合解决方法 5 岭回归(Ridge) 6 模型的保存与加载 拟合与岭回归 1 什么是过拟合与欠拟合 通过下面两张图来解释过拟合和欠拟合: 左图中机器通过这…

LeetCode 778. 水位上升的泳池中游泳(二分查找+dfs)

文章目录1. 题目2. 解题1. 题目 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。 现在开始下雨了。当时间为 t 时,此时雨水导致水池中任意位置的水位为 t 。 你可以从一个平台游向四周相邻的任意一个平台&a…

nyoj_66_分数拆分_201312012122

分数拆分 时间限制:3000 ms | 内存限制:65535 KB难度:1描述现在输入一个正整数k,找到所有的正整数x>y,使得1/k1/x1/y. 输入第一行输入一个整数n,代表有n组测试数据。 接下来n行每行输入一个正整数k输出按顺序输出对应每行的k找…

pycharm快捷键、常用设置、配置管理

内容包含: pycharm学习技巧 Learning tips PyCharm3.0默认快捷键(翻译的) pycharm常用设置 pycharm环境和路径配置 Pycharm实用拓展功能:pycharm中清除已编译.pyc中间文件 python2转python3最快方式 [pycharm版本控制和数据库管理][PyCharm中的那些实用功…

逻辑回归-分类算法

目录 逻辑回归-分类算法 1 概述 2 sigmoid函数 3 逻辑回归公式 4 逻辑回归的损失函数 5 均方误差与对数自然损失对比 6 sklearn逻辑回归API 7 案例 8 总结 逻辑回归-分类算法 1 概述 逻辑回归(Logistic Regression),简称LR。它的特…

LeetCode 1220. 统计元音字母序列的数目(DP)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n,请你帮忙统计一下我们可以按下述规则形成多少个长度为 n 的字符串: - 字符串中的每个字符都应当是小写元音字母(a, e, i, o, u) - 每个元音 a 后面都只能跟着 e - 每个元音 e 后面…

专著出版成本计算

最近有个老师要出版专著,顺便查了下出版的成本组成,网络上总结整理,基本详细。之前也出版了一本教材,所以认识电子工业出版社的编辑,有需要的也可以联系我。 编写教材的话出版社看上了之后自己是不需要出钱的&#xff…

Django视图(python函数)

1.视图 视图负责接受Web请求HttpRequest,进行逻辑处理,返回Web响应HttpResponse给请求者响应可以是一张网页的HTML内容,一个重定向,一个404错误等 视图就是python中的函数视图一般被定义在“应用/views.py”文件中 视图的第一个…

非监督学习

非监督学习 1 什么是非监(unsupervised learning)督学习 无监督学习,就是不受监督的学习,一种自由的学习方式。该学习方式不需要先验知识进行指导,而是不断地自我认知,自我巩固,最后进行自我归纳,在机器学…

LeetCode 1250. 检查「好数组」(set / 最大公约数)

文章目录1. 题目2. 解题1. 题目 给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。 假如该和结果为 1,那么原数组就是一个「好数组」,则返回 True&#xff1…

js中this和回调方法循环-我们到底能走多远系列(35)

我们到底能走多远系列(35) 扯淡: 13年最后一个月了,你们在13年初的计划实现了吗?还来得及吗? 请加油~ 主题: 最近一直在写js,遇到了几个问题,可能初入门的时候都会遇到吧…

用户画像系统

用户画像系统 1 用户画像概述 1.1 什么是用户画像 用户画像就是对现实世界中用户的数学建模。现实世界的用户通过自己各种各样的行为,浏览购买,或者收藏,等等这些行为会把自己的兴趣爱好等体现在这些行为中,比如喜欢看书就会有…

编程思想:面向对象和面向过程

何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中。我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起,最后可能也只会说出一句就是那样啦&#…

LeetCode 1210. 穿过迷宫的最少移动次数(状态压缩BFS)

文章目录1. 题目2. 解题1. 题目 你还记得那条风靡全球的贪吃蛇吗? 我们在一个 n*n 的网格上构建了新的迷宫地图,蛇的长度为 2,也就是说它会占去两个单元格。 蛇会从左上角((0, 0) 和 (0, 1))开始移动。 我们用 0 表示…

读书笔记2013第18本:《像外行一样思考,像专家一样实践》

这本书是在看《暗时间》时收集到的,书的副标题是科研成功之道,自己是个信息工作者,也号称科研工作者,虽然经常忙着一些杂活,没有时间认真思考和做实验。但从中找点立项、研究、演讲、总结的经验也是有益的。这本书的目…

Django模板(编写html代码

1.模板 用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器 模版致力于表达外观,一个视图可以使用任意一个模板,一个模板可以供多个视图…

用户画像之Spark ML实现

用户画像之Spark ML实现 1 Spark ML简单介绍 Spark ML是面向DataFrame编程的。Spark的核心开发是基于RDD(弹性分布式数据集),但是RDD,但是RDD的处理并不是非常灵活,如果要做一些结构化的处理,将RDD转换成…

EBS业务学习之应收管理

Oracle Receivable 是功能完备地应收款管理系统,它能够有效地管理客户、发票和收帐过程,因此是财务模块的重要组成部分,是财务系统中较为核心的模块之一。对于一个公司来说,是否能够与客户保持良好的跟踪,及时收取应收…

[Kaggle] Digit Recognizer 手写数字识别(神经网络)

文章目录1. baseline2. 改进2.1 增加训练时间2.2 更改网络结构Digit Recognizer 练习地址 相关博文: [Hands On ML] 3. 分类(MNIST手写数字预测) [Kaggle] Digit Recognizer 手写数字识别 1. baseline 导入包 import tensorflow as tf fr…

逻辑回归原理

逻辑回归原理 1 逻辑回归简介 logistic回归(LR),是一种广义的线性回归分析模型,常用于数据挖掘,疾病预测,经济预测等方面。 优点:计算代价低,思路清晰易于理解和实现;…