python django 基本测试
http://www.runoob.com/django/django-model.html
django-admin startapp TestModel
/models.py
from django.db import models
class Test(models.Model):
name = models.CharField(max_length=20)
settings.py
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel # 创建表结构
##############################1105
https://code.ziqiangxuetang.com/django/django-template2.html
python manage.py startapp learn
urls.py
url(r'^learn', include('learn.urls')),
settings.py
home.html
<!DOCTYPE html>
<html>
<head>
<title> 模板中获取相应的URL - 自强学堂</title>
</head>
<body>
<div>
计算 3 + 4:<br>
1. 用<span style="color:red;">{<span>% url 'add' %</span>}?a=3&b=4</span> 可以获取到链接:
<a href="{% url 'add' %}?a=3&b=4">add</a><br>
2. 用<span style="color:red;">{<span>% url 'add' 3 4 %</span>}</span> 可以获取到链接:
<a href="{% url 'add2' 3 4 %}">add2</a><br>
<pre>
# 看一下 urls.py 中的每一条对应的 name
# urls.py
urlpatterns = patterns('',
# Examples:
url(r'^add/$', 'calc.views.add', name='add'),
url(r'^add/(\d+)/(\d+)/$', 'calc.views.add2', name='add2'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
)
</pre>
</div>
</body>
</html>
##views
from django.shortcuts import render
from django.http import HttpResponse
def home(request):
return render(request, 'home.html')
def add(request):
a = request.GET['a']
b = request.GET['b']
c = int(a) + int(b)
return HttpResponse(str(c))
def add2(request, a, b):
c = int(a) + int(b
return HttpResponse(str(c))
####urls
from django.contrib import admin
from django.urls import path
from . import views
from django.conf.urls import url,include
urlpatterns = [
url(r'^$', views.home),
## url(r'^add/(\d+)/(\d+)/$', views.add, name='add'),
url(r'^add/$', views.add, name='add'),
url(r'^add/(\d+)/(\d+)/$', views.add2, name='add2'),
]
########1106 监控配置
http://www.cnblogs.com/Cherry-Linux/p/9555812.html
http://blog.51cto.com/haohaozhang/1702518
########1107
https://blog.csdn.net/u013802160/article/details/52240289
https://code.ziqiangxuetang.com/django/django-models.html
pip install D:\temp\mysqlclient-1.3.13-cp36-cp36m-win32.whl
building '_mysql' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
https://blog.csdn.net/a475952074/article/details/79530009
https://www.lfd.uci.edu/~gohlke/pythonlibs/ for windows
pip install D:\temp
solution
进入该网址http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
下载twisted对应版本的whl文件Twisted‑17.5.0‑cp36‑cp36m‑win_amd64.whl,cp后面是python版本,amd64代表64位,
运行 pip install C:\Users\CR\Downloads\Twisted-17.5.0-cp36-cp36m-win_amd64.whl
重新输入pip install scrapy即可
同理可解决wordcloud的报错
grant all on people.* to people identified by 'people'
-new project vitur_env learn_models
-pip install django
django-admin startproject learn_models
cd learn_models
django-admin.py startapp people
#
models.py
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=30)
age = models.IntegerField()
#
python manage.py makemigrations
python manage.py migrate
###models.py
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class Author(models.Model):
name = models.CharField(max_length=50)
qq = models.CharField(max_length=10)
addr = models.TextField()
email = models.EmailField()
def __str__(self):
return self.name
@python_2_unicode_compatible
class Article(models.Model):
title = models.CharField(max_length=50)
author = models.ForeignKey(Author)
content = models.TextField()
score = models.IntegerField() # 文章的打分
tags = models.ManyToManyField('Tag')
def __str__(self):
return self.title
@python_2_unicode_compatible
class Tag(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
#######debug:
$python manage.py shell
from blog.models import Article, Author, Tag
from django.db.models import Sum
from blog.models import *
str(Author.objects.all().query)
str(Author.objects.filter(name="WeizhongTu").query)
Article.objects.filter(author__name='zhe').values_list('title', flat=True)
Tag.objects.all().extra(select={'tag_name': 'name'}).query.__str__()
Tag.objects.all().extra(select={'tag_name': 'name'}).defer('name').query.__str__()
Article.objects.all().values('author_id').annotate(count=Count('author')).values('author_id', 'count').query.__str__()
Article.objects.all().values('author__name').annotate(count=Count('author')).values('author__name', 'count').query.__str__()
articles = Article.objects.all().select_related('author')[:10]
articles = Article.objects.all().prefetch_related('tags')[:10]
articles = Article.objects.all()[:3]
for a in articles:
...: a.title, a.tags.all()
$ python manage.py dbshell
SQLite version 3.14.0 2016-07-26 15:17:14
Enter ".help" for usage hints.
sqlite> select name from blog_author limit 1;
############
>>>from django.db import models
>>> from blog.models import Article1
>>> from blog.fields import ListField
>>> a = Article1()
a.labels
>>> a.labels.append('Django')
>>> a.labels.append('custom fields')
>>> a.labels
['Django', 'custom fields']
>>> type(a.labels)
<type 'list'>
>>> a.content = u'我正在写一篇关于自定义Django Fields的教程'
>>> a.save()
###############test.py
from django.db import models
import ast
class ListField(models.TextField):
### __metaclass__ = models.SubfieldBase
#### description = "Stores a python list"
def __init__(self, *args, **kwargs):
super(ListField, self).__init__(*args, **kwargs)
def to_python(self, value):
if not value:
value = []
if isinstance(value, list):
return value
return ast.literal_eval(value)
def get_prep_value(self, value):
if value is None:
return value
return str(value)
def value_to_string(self, obj):
value = self._get_val_from_obj(obj)
return self.get_db_prep_value(value)
class Dummy(models.Model):
mylist = ListField()
>>> from blog.test import Dummy, ListField
>>> d = Dummy()
>>> d.mylist
''
>>> d.mylist = [3,4,5,6,7,8]
>>> d.mylist
[3, 4, 5, 6, 7, 8]
>>> f = ListField()
>>> f.get_prep_value(d.mylist)
'[3, 4, 5, 6, 7, 8]'
type(d.mylist)
<class 'list'>
########
##debug
settings.py 尾部加上
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG' if DEBUG else 'INFO',
},
},
}
##########3
show table status from class_7 like 'test_info';
##########
https://zhidao.baidu.com/question/1435716091315804459.html
append方法是列表(list)方法,你定义的类型是一个字符串(str),字符串没有append方法。字符串添加元素和列表添加元素
上面的a是字符串,b是列表
#######
python django 基本测试的更多相关文章
- python django 基本测试 及调试 201812
#####20181225 1.python解决SNIMissingWarning和InsecurePlatformWarning警告在想要获取https站点的资源时,会报出SNIMissingWar ...
- python+Django+test 测试数据库生成报错
前提: 使用Django自带的test进行单元测试. 问题描述: 运行:python manage.py test,报错,出现数据库乱码的现象,报错如下: Creating test database ...
- python django 基本测试 及调试
#########20181110from django.db import modelsfrom blog.models import Article, Author, TagAuthor.obje ...
- 测试开发:Python+Django实现接口测试工具
Python+Django接口自动化 引言: 最近被几个公司实习生整自闭了,没有基础,想学自动化又不知道怎么去学,没有方向没有头绪,说白了其实就是学习过程中没有成就感,所以学不下去.出于各种花里胡哨的 ...
- 基于Python+Django的Kubernetes集群管理平台
➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...
- python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库).自定义Field.数据表更改.QuerySet API 一.Django 模型(数据库) Django 模型是与数据库相关的,与数据库相关的代码 ...
- python Django教程 之 安装、基本命令、视图与网站
python Django教程 之 安装.基本命令.视图与网站 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 w ...
- Python+Django+Eclipse 在Windows下快速开发自己的网站
一.配置开发环境 我的开发环境是:Python3.3.2 + Django1.5.2 + Eclipse 1.安装Python 下载地址:http://www.python.org/getit/ 安装 ...
- python Django 学习笔记(一)—— Django安装
注:本人python版本2.7.5 ,win7系统 安装Django https://www.djangoproject.com/download/ 官方下载Django-1.5.5.tar.gz 1 ...
随机推荐
- 红帽企业版RHEL7.1在研域工控板上,开机没有登陆窗口 -- 编写xorg.conf 简单三行解决Ubuntu分辩率不可调的问题
红帽企业版RHEL7.1在研域工控板上,开机没有登陆窗口 没有登陆窗口 的原因分析: 没有登陆窗口的原因是因为有多个屏幕在工作,其中一个就是build-in 屏幕(内置的虚拟屏幕)和外接的显示器,并且 ...
- scala中的注解
scala中很多注解实现java中关键字的用法 @volatile注解标记为易失的:@transient注解将字段标记为瞬态的:@strictfp注解对应strictfp修饰符:@native注解标记 ...
- (转)HTML&CSS——background: url() no-repeat 0 -64px;CSS中背景图片定位方法
http://blog.csdn.net/oscar92420aaa/article/details/51304067 CSS中背景图片的定位,困扰我很久了.今天总算搞懂了,一定要记下来. 在CSS中 ...
- 《Maven实战》笔记-9-版本管理
一.理想的发布版本,在项目构建时需要满足以下条件: 1.所有自动化测试应当全部通过: 2.项目没有配置任何快照版本的依赖: 3.项目没有任何快照版本的插件: 4.项目所包含的代码已经全部提交到版本控制 ...
- 动态横向(水平)合并Repeater数据行DataItem的列
Insus.NET有对GridView控件进行横纵分别合并列:横:<动态横向(水平)合并GridView数据行DataRow的列>http://www.cnblogs.com/insus/ ...
- 为所有的Ul下的li标签添加点击事件
- 【Linux】-Ubuntu下配置JDK1.8
前言 这次实在是不想写前言了,好吧,那咱就不写了. 内容 怀着复杂的心情来整理这个小小的操作,其实我的内心是拒绝的,因为太简单了,但是我却花费了很长的时间,有效时间花费了将近两个小时去整理这个小玩意儿 ...
- P2115 [USACO14MAR]破坏Sabotage
题意:给你一个正整数序列,让你删去一段区间内的数[l,r] $1<l\le r <n$ 使得剩余的数平均值最小$n\le 10^5$ 1.不难想到暴力,用前缀和优化$O(n^2)$ #in ...
- DockerFile一键搭建环境(一)
点击查看文件详情 FROM centos:7 COPY --chown=root:root nginx /etc/init.d/ Run set -ex \ && yum insta ...
- mac 卸载 node
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 除此之外,还需要检查一 ...