博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django简介
阅读量:5075 次
发布时间:2019-06-12

本文共 5422 字,大约阅读时间需要 18 分钟。

一、关于django的简单应用

在项目下urls(路由)演示:

from views import *urls = [    ('/index', index),    ('/time', time),    ('/test', test),    ('/user', user),]

关于 views(视图函数)演示:

import datetimefrom jinja2 import Templateimport pymysqldef index(env):    with open('templates/index.html', 'r') as f:        data = f.read()    return datadef time(env):    ctime = datetime.datetime.now().strftime('%Y-%m-%d %X')    with open('templates/time.html', 'r') as f:        data = f.read()        data = data.replace('@@time@@', ctime)    return datadef error(env):    return '404'def test(env):    with open('templates/test.html', 'r') as f:        data = f.read()    tem = Template(data)    response = tem.render(user={
'name': 'lqz', 'age': 18}) return responsedef user(env): conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', db='lqz', password='admin') cur=conn.cursor(pymysql.cursors.DictCursor) cur.execute('select * from user') dic=cur.fetchall() print(dic) with open('templates/user.html', 'r') as f: data = f.read() tem = Template(data) response = tem.render(user_list=dic) return response
View Code

关于templates下的html代码(及前端代码):

    
Title
{% for user in user_list%}
{% endfor %}
id name password
{
{user.id}}
{
{user.name}}
{
{user.password}}
View Code

二、django中一些配置

简述:在创建django后我们需要先进行一些配置才可以继续下去:

1、在我们创建django项目后需要注意django有没有自动创建templates文件夹,如果没有创建则需在手动创建后在setting中进行配置且可以添加多个

2、在创建app时如果是手动创建的则需在setting中进行配置

3、当我们需要使用第三方库或者链接服务器获得数据时这需要在项目下创建static文件夹然后再setting中STATIC_URLS下进行配置

4、在我们使用django创建项目后其会默认为我们创建了一个sqlite3数据库当我们想使用其他数据库的时候可以在app下的__init__.py中

书写import pymysql与朋友mysql.install_as_MYSQLdb()然后再setting中配置

 

注意:在平时测试时我们需要将在MIDDLEWARE中的中间键(

'django.middleware.csrf.CsrfViewMiddleware',

)暂时注掉是为了能够进行本地post请求。

三、django中实现的完整版登录功能演示

models模块中的代码:

from django.db import models# Create your models here.class User(models.Model):    id = models.AutoField(primary_key=True)    name = models.CharField(max_length=32)    password = models.CharField(max_length=32)    adder=models.CharField(max_length=64,default='上海')
models演示代码

views模块中的代码:

def user_list(request):    if request.method == 'GET':        ret = models.User.objects.all()        return render(request, 'user_list.html', {
'lian_list': ret})def del_list(request): if request.method == 'GET': id = request.GET.get('id') models.User.objects.filter(id=id).delete() return redirect('/user_list/')def add_list(request): if request.method == 'GET': return render(request, 'add_list.html') elif request.method == 'POST': name = request.POST.get('name') password = request.POST.get('password') adder = request.POST.get('adder') models.User.objects.create(name=name, password=password, adder=adder) return redirect('/user_list/')def update_list(request): if request.method=='GET': return render(request,'update_list.html') elif request.method=='POST': id = request.GET.get('id') name=request.POST.get('name') password=request.POST.get('password') adder=request.POST.get('adder') models.User.objects.filter(id=id).update(name=name,password=password,adder=adder) retur
views视图函数中代码

urls模块中的代码:

from django.conf.urls import urlfrom django.contrib import adminfrom app01 import viewsurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^user_list/', views.user_list),    url(r'^del_list/',views.del_list),    url(r'^add_list/',views.add_list),    url(r'^update_list/', views.update_list),]
usrl路由配置

templates下的代码:

    
添加

用户名:

密码:

地址:

user_list代码
    
添加

用户名:

密码:

地址:

add_list
    
改变

用户名:

密码:

地址:

update_list

四、补充

1、前端的form表单中action与method中两种提交数据的方式(get,post):

  action:表示是将数据提交到那个视图函数的路径

  get:表示的将数据以&连接将提交的数据拼接到url路径后且一般是不重要的数据或获得页面的一些元素并有数据大小限制

  post:将数据提交到后台的方式

2:在视图函数views中可以通过以下方式去获得由前端传过来数据:

  1、request.method :表示的是数据由前端提交过来的方式。

  2、request.method.(GET或POST):是以get或post方式传过来的数据(相当于字典)

  3、request.method.(GET或POST).get("form表单中name=名字"):获得的列表最后一个值

  4、request.method.(GET或POST).getlist("form表单中name=名字":获得列表中所有的值

3、新手三件套总结:

  render(request,'返回的是templates中html代码表示的路径'):返回的是一个页面

  redirect():重定向

  HTTPresponset:返回的一个字符串

4、怎么使用pycharm中的pymysql。

import pymysqlconn=pymysql.connect(    host='127.0.0.1',    port=3306,    user='root',    password='',    db='liu',)cur=conn.cursor(pymysql.cursors.DictCursor)cur.execute('数据库执行语句')cur.fetchone()
View Code

五、orm简述

orm:Object Relational Mapping 全称为对象关系映射

如何使用orm:

from django.db import models# Create your models here.class User(models.Model):    id = models.AutoField(primary_key=True)    name = models.CharField(max_length=32)    password = models.CharField(max_length=32)    adder=models.CharField(max_length=64,default='上海')
View Code

注意:在使用orm前一定要先手动创建一个数据库只有这样才能将orm创建的表User后再终端中使用 python3 manage.py makemigrstions命令

将models中创建的表放到migrantions文件夹中去记录数据库修改的记录最后通过 python3 manage.py migrate将数据同步到数据库中。

orm干与不能干的事情:

  1,orm可以创建表和修改记录

  2、orm不能自动创建数据库

转载于:https://www.cnblogs.com/ageliu/p/9923939.html

你可能感兴趣的文章
NotificationManager和Notification的使用总结
查看>>
Linux系统上安装JDK1.8
查看>>
iOS 复杂tableView的 cell一般设计思路
查看>>
BZOJ 1452 Count 【模板】二维树状数组
查看>>
数据库一些小知识
查看>>
角色扮演
查看>>
springmvc基础学习2---简单配置文件
查看>>
javascript是做什么的
查看>>
探究QA职能
查看>>
图片加载框架之Glide和Picasso
查看>>
wtforms Form实例化流程(源码解析)
查看>>
[查询]计算机信息系统集成项目经理资质名单网址
查看>>
Android开发之AlarmManager具体解释
查看>>
3.14 下午
查看>>
Delphi COM编程介绍
查看>>
apc
查看>>
.net 新闻点击量修改,避免恶意刷新
查看>>
java集合的并集、交集、差集
查看>>
bzoj 3551
查看>>
[LeetCode] Heaters 加热器
查看>>