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. wpf 窗口打开后默认设置控件焦点

    https://blog.csdn.net/Vblegend_2013/article/details/81771872 <Grid FocusManager.FocusedElement=&q ...

  2. libmad介绍

    一.简介 libmad是一个开源mp3解码库,其对mp3解码算法做了很多优化,性能较好,很多播放器如mplayer.xmms等都是使用这个开源库进行解码的:如果要设计mp3播放器而又不想研究mp3解码 ...

  3. linux sdcv命令

    一.简介 sdcv全称为stardict console version,是终端下的词典.   二.安装 1)安装sdcv yum install -y sdcv 2)安装字典 http://www. ...

  4. opencv中读写视频

    1.介绍 OpenCV 读写视频之前,先介绍一下编解码器(codec) .如果是图像文件, 我们可以根据文件扩展名得知图像的格式.但是此经验并不能推广到视频文件中. 有些 OpenCV 用户会碰到奇怪 ...

  5. HDU 1796 How many integers can you find (容斥)

    题意:给定一个数 n,和一个集合 m,问你小于的 n的所有正数能整除 m的任意一个的数目. 析:简单容斥,就是 1 个数的倍数 - 2个数的最小公倍数 + 3个数的最小公倍数 + ...(-1)^(n ...

  6. ElementUI的表单和vee-validate结合使用时发生冲突的解决

    在Vue项目中使用ElementUI表单时,同时又引入了vee-validate进行使用的时候,在浏览器上会出现这样的报错: [Vue warn]: The computed property &qu ...

  7. MODI中的OCR模块

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2012.07.02更新:2012.07.09补充非简体中文版内容 自从基于MODI的DjVuToy.FreePic2Pdf. ...

  8. Spring Boot 学习系列(05)—自定义视图解析规则

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 自定义视图解析 在默认情况下Spring Boot 的MVC框架使用的视图解析ViewResolver类是C ...

  9. Struct结构体

    1.结构体的定义与调用 // 定义结构体类型 // 结构体类型名为 MyDate1 struct MyDate1 { int year; int month; int day; }; // 定义结构体 ...

  10. jest+vue-test-utils初步实践

    一.起步 1. jest Jest是 Facebook 的一套开源的 JavaScript 测试框架, 它自动集成了断言.JSDom.覆盖率报告等开发者所需要的所有测试工具,配置较少,对vue框架友好 ...