https://www.cnblogs.com/franknihao/p/7682914.html

https://blog.csdn.net/tang_jin2015/article/details/81193943

启动mysql

WampServer

https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/p/7914644.html

http://www.docin.com/p-184159431.html

多调试,交互式编程体验

https://www.cnblogs.com/justbestone/p/8022981.html

https://blog.csdn.net/qq_37198814/article/details/79764144

#########sample 参考

https://www.cnblogs.com/franknihao/p/7682914.html

drop database Django_Test;
CREATE DATABASE Django_Test DEFAULT CHARSET utf8;

GRANT ALL PRIVILEGES ON Django_Test.* TO peng@'%';

GRANT ALL PRIVILEGES ON Django_Test.* to peng identified by 'peng';
FLUSH PRIVILEGES;

crtl+s 重新运行程序

############################################
学习django搭建个人博客时候,采用MySQL作为后台数据库,遇到如下问题

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module
.

Did you install mysqlclient?

解决方案:

1. 安装pymsql

$ pip install pymysql
1
2. 安装完毕,打开_init_.py,添加代码:

$ import pymysql

$ pymysql.install_as_MySQLdb()
1
---------------------
作者:sars231
来源:CSDN
原文:https://blog.csdn.net/sars231/article/details/78999084?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

######################

http://wrongwaycn.github.io/django11/topics/db/models/index.html#topics-db-models

快速示例(Quick example)¶
这个例子定义了一个 Person model,它有 first_name 和 last_name 两个属性:

from django.db import models

class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
first_name 和 last_name 是 model 的 字段(fields)。每个字段都被指定成一个类属性,每个属性都映射一个数据库的列。

上面的 Person model 会在数据库中创建这样一张表:

CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
一些技术上的注意事项:

这个表的名称 myapp_person, 是根据 model 中的元数据自动生成的,它也可以覆写为别的名称,详见 表名称(Table names) 。
id 字段是自动添加的,但这个行为可以被重写。详见 自增主键字段(Automatic primary key fields).
这个例子使用 PostgreSQL 语法格式化 CREATE TABLE SQL 语句。要注意,Django 根据 配置文件(settings file) 中指定的数据库类型生成相应的 SQL 语句。

字段(Fields)¶
model 中不可或缺且最为重要的,就是字段集,它是一组数据库字段的列表。字段被指定为类属性。

例如:

class Musician(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
instrument = models.CharField(max_length=100)

class Album(models.Model):
artist = models.ForeignKey(Musician)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()

#############################

mysql -upeng -ppeng
mysql> use django_test
mysql> show tables;

###############

https://docs.djangoproject.com/en/2.1/intro/tutorial02/
https://docs.djangoproject.com/en/2.1/intro/tutorial02/
https://www.cnblogs.com/keer2345/p/6021661.html

$python manage.py shell

modeles.py
from __future__ import unicode_literals
from django.db import models

# Create your models here.
class Character(models.Model):
name = models.CharField(max_length=200)
age = models.IntegerField()

# def __unicode__(self):
# return self.name

def __str__(self):
return self.name

import django
from new_app.models import Character
Character.objects.all()
<QuerySet []>
c = Character(name='peter',age='70')
c.save()
c.id
1L
c.name
'John'
c.name = 'Vamei'
c.save()
Character(name='John',age='70').save()
Character.objects.all()
<QuerySet [<Character: 1>, <Character: 2>, <Character: 3>]>

Character.objects.filter(id=1)

Character.objects.get(pk=1)

########################20181022
http://www.runoob.com/django/django-template.html

点击py file.右键,running python.py.

hello.html
<h1>{{ label }}</h1>

new_app/urls.py
from .views import new_first_page
from .views import template_show

urlpatterns = [
url(r'^$', new_first_page),
url(r'^hello/', template_show),
# url(r'^hello/', new_first_page),

]

new_app/view.py
from django.shortcuts import render

def template_show(request):
context = {}
context['label'] = 'Hello World dba'
return render(request, 'hello.html', context)

#########20181023
http://www.runoob.com/django/django-form.html

11.
serach_form.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="/new/search" method="get">
<input type="text" name="q">
<input type="submit" value="搜索">
</form>
</body>
</html>

new_app\urls.py
from django.conf.urls import url

from .views import new_first_page
from .views import template_show
from . import search

urlpatterns = [
url(r'^$', new_first_page),
url(r'^hello/', template_show),
url(r'^search-form$', search.search_form),
url(r'^search$', search.search),
# url(r'^hello/', new_first_page),

]

new_app\search.py

from django.http import HttpResponse
from django.shortcuts import render_to_response

# 表单
def search_form(request):
return render_to_response('search_form.html')

# 接收请求数据
def search(request):
request.encoding='utf-8'
if 'q' in request.GET:
message = '你搜索的内容为: ' + request.GET['q']
else:
message = '你提交了空表单'
return HttpResponse(message)

22.
new_app\urls.app

from . import search,search2

urlpatterns = [
url(r'^$', new_first_page),
url(r'^hello/', template_show),
url(r'^search-form$', search.search_form),
url(r'^search$', search.search),
url(r'^search-post$', search2.search_post),
# url(r'^hello/', new_first_page),

search2.py

# -*- coding: utf-8 -*-

from django.shortcuts import render
from django.views.decorators import csrf

# 接收POST请求数据
def search_post(request):
ctx = {}
if request.POST:
ctx['rlt'] = request.POST['q']
return render(request, "post.html", ctx)

post.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="/new/search-post" method="post">
{% csrf_token %}
<input type="text" name="q">
<input type="submit" value="Submit">
</form>

<p>{{ rlt }}</p>
</body>
</html>

33.
view.py

from django.template.context_processors import csrf

def process(request):
ctx = {}
ctx.update(csrf(request))
if request.POST:
name,age = request.POST.get('name'),request.POST.get('age')
new_record = Character(name=name,age=age)
new_record.save()
return render(request, 'formtest.html', ctx)

urls.py

from .views import template_show,process
from . import search,search2

urlpatterns = [
url(r'^$', new_first_page),
url(r'^hello/', template_show),
url(r'^search-form$', search.search_form),
url(r'^search$', search.search),
url(r'^search-post$', search2.search_post),
url(r'^process$', process),
]

template\formtest.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>post</title>
</head>
<body>
<form method="post" action="/new/process">
{% csrf_token %}
<input type="text" name="name" />
<input type="number" name="age" />
<input type="submit" value="Submit" />
</form>

<p>{{ rlt }}</p>
<p>{{ age }}</p>
</body>
</html>

44.

https://www.cnblogs.com/chenchao1990/p/5284237.html
https://www.cnblogs.com/btchenguang/archive/2012/08/27/2658598.html
https://www.cnblogs.com/chenchao1990/p/5284237.html
https://code.ziqiangxuetang.com/django/django-csrf.html
######
form的定义和model类的定义很像。我们可以使用python manage.py shell来查看form类的信息。

import django
from new_app.views import CharacterForm
f=CharacterForm()
print(f)
f = CharacterForm({'subject1': 23})
f = CharacterForm({'name': 'ok','age': 23})
f.is_valid()
f.clean()

####
view.py

from django import forms

class CharacterForm(froms.Form):
name = forms.Charfield(max_length=200,label="Your Name")
age = forms.IntegerField(min_value=18)

def process(request):
context = {}
context.update(csrf(request))
if request.POST:
form = CharacterForm(request.POST)
if form.is_valid():
#do something with data
cd=form.cleaned_data
print cd
form = CharacterForm()
context['form'] = form
return render(request, 'form_test.html', context)

###########
https://blog.csdn.net/u013176681/article/details/73844330/
一旦你创建一个 Template 对象,你可以用 context 来传递数据给它。 一个context 是一系列变量和它们值的集合。
它的构造函数带有一个可选的参数: 一个字典映射变量和它们的值。 调用 Template 对象 的 render() 方法并传递 context 来填充模板:

>>> t = Template('My name is {{ name }}.')
>>> c = Context({'name': 'nowamagic'})
>>> t.render(c)
'My name is nowamagic.'
##########

#########20181024

ref https://blog.csdn.net/IamNieo/article/details/50442799

将database加入到INSTALLED_APPS
settings.py
# RestfulProject/settings.py
INSTALLED_APPS = (
...
"new_app",
...
)

admin.py

from new_app.models import Character
admin.site.register(Character)

############2

https://www.cnblogs.com/phyger/p/8035253.html

python manage.py createsuperuser

pengdba/123456

models.py
class Role(models.Model):
role_code = models.IntegerField(primary_key=True)
role_name = models.CharField(max_length=100)
def __str__(self):
return self.role_name

class User(models.Model):
name = models.CharField(max_length=100,primary_key=True)
age = models.IntegerField()
email = models.EmailField()
role = models.ForeignKey(Role,on_delete=models.CASCADE,)
def __str__(self):
return '%s(%s) Mail:%s' % (self.name,self.age,self.email)

# def __unicode__(self):
# return self.name

admin.py

from django.contrib import admin

from new_app.models import User,Role

class UserShow(admin.ModelAdmin):
fields = ('name','age','role') #没加email

admin.site.register(User,UserShow)
admin.site.register(Role)

项目中已经设计好了表,就差把表结构给注入数据库了。
python manage.py migrate
python manage.py makemigrations
python manage.py migrate

admin.py
class UserShow(admin.ModelAdmin):
fieldsets = (
['基本信息',{
'classes' : ('collapse',), # CSS设置
'fields' : ('name','age')
}],
['更多信息',{
'classes' : ('collapse',),
'fields' : ('email','role')
}]
)

##########20181026

  在进行下面的说明之前,我们先建立一个名为users的App来单独进行用户的一些操作:python manage.py startapp users

#define in user table
mike/oracle11

template/login.html
<!-- login.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ request.path }}</title>
</head>
<body>
<form method="post" action="/users/login">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Go!" />
</form>

</body>
</html>

users/urls.py
from django.conf.urls import url
from .views import user_login,auth_test,user_logout

urlpatterns = [
url(r'^login$', user_login),
url(r'^auth$', auth_test),
url(r'^logout$', user_logout),

]

users/views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render,redirect
from django.template.context_processors import csrf
from django import forms
from django.contrib.auth import authenticate,login
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required
from django.contrib.auth import logout

# Create your views here.

class LoginForm(forms.Form):
username = forms.CharField(max_length=100,min_length=3)
password = forms.CharField(min_length=8,widget=forms.PasswordInput)
email = forms.EmailField()

def user_login(request):
context = {}
context.update(csrf(request))
login_form = LoginForm()
if request.POST:
username = password = ''
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username,password=password)
if user is not None and user.is_active:
login(request,user)
return redirect('/users/auth')
else:
return redirect('/users/login')
context['form'] = login_form
return render(request,'login.html',context)

@login_required
def auth_test(request):
return HttpResponse('<p>%s</p>' % request.user.get_username())

#def auth_test(request):
# context = {}
# if request.user.is_authenticated:
# return HttpResponse('<p>%s</p>' % request.user.get_username())
# else:
# return redirect('/user/login')

def user_logout(request):
logout(request)
return redirect('/')

testdjango/urls.py

url(r'^users/', include('users.urls')),

###########20181028

user/views

from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import redirect,render
from django.template.context_processors import csrf

def user_register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
return redirect('/')

else:
form = UserCreationForm()
context = {'form':form}
context.update(csrf(request))
return render(request, 'register.html', context)

register.html
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>

users/urls.py

url(r'^register$', user_register),

转发 django 初探的更多相关文章

  1. Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)

    Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...

  2. django初探-创建简单的博客系统

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  3. django初探-创建简单的博客系统(二)

    上篇django初探-创建简单的博客系统(一)已经记录了Django实现博客的发布的整个过程,接下来继续说明博客标题和内容的显示. 显示博客详细 将博客内容保存到数据库还不是发布博客的终极目的,博客一 ...

  4. django初探-创建简单的博客系统(一)

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  5. web框架django初探

    Web框架介绍 一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发,就出 ...

  6. Django 初探--Django的开发服务器及创建数据库(笔记)

    1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. ...

  7. Django初探--开发环境搭建(笔记)

    1. Django框架的安装 (1) 下载Django源码 Django-1.7.11.tar.gz,并解压,网址:https://www.djangoproject.com/download/ (2 ...

  8. django初探

    如果是自己建站耍的话,还是用Php方便,毕竟Php服务器便宜又到处都是. 但是python毕竟是一个新鲜的东西,特别是django,以前一直东python的语法,而且是我最早学习的语言之一,但是一直停 ...

  9. Django初探——工程创建以及models数据库相关配置

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

随机推荐

  1. U盘文件或目录损坏且无法读取怎么解决

    转自 http://jingyan.baidu.com/article/020278118afaec1bcc9ce5df.html U盘文件或目录损坏且无法读取怎么解决 听语音 | 浏览:37504 ...

  2. DPDK内存管理-----rte_mbuf(转)

    本文主要介绍rte_mbuf与rte_mempool数据结构之间的组织关系.以及网卡接收到的数据是如何存储在rte_mbuf中的. 一.rte_mbuf.rte_mempool及网卡收到的数据包在内存 ...

  3. ZROI2018提高day1t3

    传送门 分析 考场上想到了先枚举p的长度,在枚举这个长度的所有子串,期望得分40~50pts,但是最终只得了20pts,这是因为我写的代码在验证中总是不断删除s'中的第一个p,而这种方式不能解决形如a ...

  4. rest-framework组件 之 分页

    分页 简单分页 from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination class PNPag ...

  5. scala中lazy

    Scala中通过lazy关键字来定义惰性变量,惰性变量只能是不可变变量.只有在调用惰性变量的时候,才会去实例化这个变量

  6. HDU 5373 The shortest problem (数学)

    题意:给定两个数的n和m,有一种操作,把 n 的各位数字加起来放到 n后面形成一个新数n,问重复 m 次所得的数能否整除 11. 析:这个题首先要知道一个规律奇数位的和减去偶数位的和能被11整除的数字 ...

  7. 对C语言中static的理解

    对C语言中的static关键字的深入理解 在一次面试的时候面试官问我static全局变量与全局变量的区别,之前虽然用过但是并没仔细去搞懂他,这次来细心的学习一下. 基本概念 使用static有三种情况 ...

  8. 使用metasploit进行栈溢出攻击-1

    攻击是在bt5下面进行,目标程序是在ubuntu虚拟机上运行. 首先,需要搞明白什么是栈溢出攻击,详细内容请阅读 http://blog.csdn.net/cnctloveyu/article/det ...

  9. ubuntu - 14.04,必须会的技能-安装PPA源中的程序,更大范围使用deb格式安装文件!!

    在使用ubuntu时候,管理各种软件最方便的方式肯定是使用软件中心了,这个管理工具类似windows的 程序管理了,使用它有两个好处: 1,无需处理包依赖,linux里面程序存在各种依赖关系,这在以往 ...

  10. Flask 程序的基本结构

    1.初始化 所有Flask程序都必须创建一个程序实例.web服务器使用一种名为Web服务器网关借口的协议,把接收自客户端的所有请求都转交给这个对象处理. from flask import Flask ...