转发 django 初探
https://www.cnblogs.com/franknihao/p/7682914.html
https://blog.csdn.net/tang_jin2015/article/details/81193943
启动mysql
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 初探的更多相关文章
- Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)
Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...
- django初探-创建简单的博客系统
django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...
- django初探-创建简单的博客系统(二)
上篇django初探-创建简单的博客系统(一)已经记录了Django实现博客的发布的整个过程,接下来继续说明博客标题和内容的显示. 显示博客详细 将博客内容保存到数据库还不是发布博客的终极目的,博客一 ...
- django初探-创建简单的博客系统(一)
django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...
- web框架django初探
Web框架介绍 一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发,就出 ...
- Django 初探--Django的开发服务器及创建数据库(笔记)
1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. ...
- Django初探--开发环境搭建(笔记)
1. Django框架的安装 (1) 下载Django源码 Django-1.7.11.tar.gz,并解压,网址:https://www.djangoproject.com/download/ (2 ...
- django初探
如果是自己建站耍的话,还是用Php方便,毕竟Php服务器便宜又到处都是. 但是python毕竟是一个新鲜的东西,特别是django,以前一直东python的语法,而且是我最早学习的语言之一,但是一直停 ...
- Django初探——工程创建以及models数据库相关配置
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
随机推荐
- C/C++读写csv文件
博客转载自:http://blog.csdn.net/u012234115/article/details/64465398 C++ 读写CSV文件,注意一下格式即可 #include <ios ...
- 1用java实现冒泡排序算法以及解决的几个小问题。
package huawei.exam; public class BubbleSort { /** * @param args */ public static void main(String[] ...
- NSButton添加事件
-(void)addButton { NSButton* pushButton = [[NSButton alloc] initWithFrame: NSMakeRect(, , , )]; push ...
- poj3420 Quad Tiling
传送门 题目大意 问讲一个大小为4*n的棋盘用无数1*2的骨牌不重叠覆盖有多少种方案. 分析 我们考虑可以将长为n的棋盘分为两块,一个大小为n-i,另一个大小为i,而为了避免对于不同的i构造出相同的情 ...
- Luogu 3629 [APIO2010]巡逻
先考虑$k = 1$的情况,很明显每一条边都要被走两遍,而连成一个环之后,环上的每一条边都只要走一遍即可,所以我们使这个环的长度尽可能大,那么一棵树中最长的路径就是树的直径. 设直径的长度为$L$,答 ...
- 安装Maven及Eclipse中配置Maven
下载maven版本: 1.进入官网:http://maven.apache.org/download.cgi ,下载编译后的maven版本:如图下: 2.创建一个目录,把下载的maven压缩包,进 ...
- Umbraco中获取UmbracoContext
在Umbraco项目中,获取当前的UmbracoContext几乎是都需要用到的,我们一般通过一个静态方法来获取,代码如下 public class ContextHelpers { public s ...
- Spring第四篇
在spring第三篇中介绍了bean元素属性 在第四篇中介绍spring注入的方式 1 set方法注入 建立一个User类 创建私有的属性 set get 方法 重写toString方法 代码如下 ...
- Netty学习大纲
1.BIO.NIO和AIO2.Netty 的各大组件3.Netty的线程模型4.TCP 粘包/拆包的原因及解决方法5.了解哪几种序列化协议?包括使用场景和如何去选择6.Netty的零拷贝实现7.Net ...
- ASP.NET MVC 视图层-生成链接相关(Html.ActionLink,Url.Action)
1. @Html.ActionLink() 参考 也是使用在chtml模板中,返回参数中指定controller.指定action的所生成的超链接标签<a>标签html文本.如果没有指定 ...