sqlite阅读虫师django开发发布会系统和django开发Web接口分享

最近读书了虫师的书籍,关于虫师分析django Web开发及django 开发Web接口,通过翻阅虫师的书本,学到了不少事物,在这里享受一下,和简友一起读书与讨论

1、创建项目django-admin startproject duodian
2、创建以python manage.py startapp myduodian,将myduodian加上到用被
3、运行项目
python manage.py runserver,可以经过连日http://127.0.0.1:8000顾就得It Worked
4、在urls.py中配置url(r'^index/',views.index)
需要导入from myduodian import views
5、在views.py中定义一个办法

from django.http import HttpReponse
def index(request):
return HttpReponse("你好 我的世界")

运行
python manage.py runserver,在浏览器被输入http://127.0.0.1:8000/index即可显示,就可以以页面来看你好 我的世界

6、在myduodian文件夹下创造templates文件夹,在文件夹templates创建模板,index.html
7、修改views.py里面index函数

from django.http import HttpReponse
def index(request):
return render(request,'index.html')

再次运行即可显示index.html里面的内容。

列运行于如今,我们大概的看下项目目录:

duodian.png

8、(1) form POST提交会出现CSRF失败,这时我们需要以form表单中添加{%
csrf_token %},刷新表单即可。
旁一样种方法就是是于setting.py种去丢csrf中间件,也会继续访问,但是这种做法未引进。
(2)
表单提交时属性为action=/login_action/,在浏览器中走访链接就是是http://127.0.0.1:8000/login\_action/

9、render(request,''index.html'',{'error':'失败了'})
每当模板html文件中行使{{ error }}

10、重定向

from django.http import HttpResponse,HttpRespinseRedirect
return HttpRespinseRedirect('/event_manage')

11、Cookie、Session


12、python manage.py migrate进展数量迁移
再者也会转移auth_user申,该表中存放的用户信息可以就此来报到Django自带的Admin管理后台

13、登录Admin后台python manage.py createsuperuser,自设账号以及密码,
Admin管理后台登录地址:http://127.0.0.1:8000/admin/

14、如果安有函数只能报到才能够顾

@login_required
def event_manage(request):

15、在models.py中开创模型类,每一个型类就本着许数据库被的各个一个阐明

16、创建好模型类后,python manage.py makemigrations myduodian推行数据库迁移,迁移成功就是见面在数据库被开创建表

补偿:项目创造是当虚拟环境外面创建的,但是python命令操作都是以虚拟环境下


17、在13中Admin后台管理用户/用户组可以,创建的发布会及嘉宾表也堪由此Admin后台管理,需要以admin.py注册管理的表

from myduodian.models import Event,Guest
admin.site.register(Event)
admin.site.register(Guest)

修改setting.pyzh-hans后台化汉字

18、Admin后台管理界面简单设置

class EventAdmin(admin.ModelAdmin):
list_display=['id','name']

class GuestAdmin(ModelAdmin):
list_display = ['realname','phone']
search_fields = ['phone']
list_filter = ['name']

admin.site.register(Event,EventAdmin)
admin.site.register(Guest,GuestAdmin)
可以理解成用EventAdmin来注册Event模块

19、python manage.py shell执行命令操作Django模型
20、 查询数据:Event.objects.all()数组模型

Event.png

封存数据方式1:

save.png

报之错是时间区不针对
于setting.py文件被改USE_TZ=False即可
封存数据方式2:
Event.objects.create(id=3,name="你好")

21、获取数据方式

Event.objects.get(name = "nihao").limit
返回的是name等于你好的模型对象,django的get去取得关联表的数据的话,而关键表的数据如果多于2条的话也会报错

django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在的话,它会返回[]。 
比如我数据库里有一条记录,记录的name的值是老王python的话,我用 
student = Student.objects.filter(name='老王python')
student = Student.objects.filter(name__contains='老王python')
student.delete()删除数据
更新字段1:
student.name = "小明"
student.save()注意要保存哦
更新字段2:
Guest.objects.select_for_update().filter(phone="17078075655").update(realname="andy")

22、SQLite管理工具
SQLite Manager 火狐浏览器插件,下载装插件
SQLiteStudio 下载安装就可以,sqlitestudio.pl下充斥

23、下载mysql

配置mysql
安装pymysql
python中库mysql-python 连接mysql
connect()建立数据库链接
cursor()获取数据库操作游标
execute()执行sql语句
commit()提交事务
close()关闭数据库链接

from pymysql import cursors,connect
conn = connect(
host=''127.0.0.1,
user='root',
password='',
charset='utf-8',
cursorclass=cursors.DictCursor)
 with conn.cursor() as cursor:
sql = "insert into sign_quest(realname,phone) values('name',17078075655)"
cursor.execute(sql)
# 提交事务
conn.commit()
# 关闭
finnally conn.close()

查询信息
sql = "select phone from sign_quest where phone =%s"
cursor.execute(sql,("17078075655",))

在django中配置mysql
在setting.py修改databases就好

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'NAME': 'test',
        'USER':'root',
        'PASSWORD':'',
    }
}

24、从sqlite3数据库切换到mysql中,需要形成数据库同步,保证数据的完整性,执行python manage.py migrate

python2 不支持用pymysql 需要以myduodian、init.py中输入
import pymysql
pymysql.install_as_MySQLdb()
坐更换了数据库后台管理账号也要更安python manage.py createsuperuser
mysql可视化管理工具Navicat
SQLyog


25、django模板

Django-boostrap3 集成在Django中的,下载安装使用,要写在settIng.py应用中bootstrap3,在INSTALLED_APPS=[
bootstrap3
]
pip install Django-bootstrap3

加载用用、css、js文件
{%  load bootstrap3  %}
{  bootstrap3_css   }
{   bootstrap3_javascript   }

26、分页器

page = Paginator([],2)
page.count 查看共多少条数据
page.page_range查看共分多少页

page1 = page.page(1)查看第一页数据
page1.object_list当前页的对象

page2 = page.page(2)获取第二页数据
page2.start_index本页第一条数据
page2.end_index本页最后一条
page2.has_previous() 是否有上一页
page2.has_next是否有下一页

page2.previous_page_number()上一页是第几页
page2.next_page_number()下一页是第几页
page2.has_other_pages()是否有其他页

URL 链接:'r(^sign_index/(?p<eid>[0-9]+)/ $'参数

from django.shortcuts import render,get_object_or_404
event = get_object_or_404(Event,id=eid)

27、连接多参数

action="/sign_index_action/{{ event.id }}/"参数
Guest.objects.filter(phone=phone,event_id=eid).update(sign='1')

28、退出登录:

def logout(request):
auth.logout(request)  # 退出登录
return HttpResponsedirect('/index/')

实现登录功能

def login(request):
auth.login(request)  # 退出登录
return HttpResponsedirect('/index/')

29、开发体系web接口

url配置:(r'^api/',include(''sign.urls,namepace="sign"))
JsonResponse({'status':200,data:[]})
JsonResponse({'status':200,'messge':"error"})

30、下充斥好pycharm压缩文件在bin下实施下列代码即可

开启pycharm用sh ./pycharm.sh
激活用http://idea.imsxm.com
网站地图xml地图