Python老男孩21期视频是Python爬虫、Web框架、数据库等方面的全面知识总结,适合有一定编程经验的初学者或者Python爱好者进一步学习。本文将从以下几个方面进行详细的阐述。
一、爬虫基础
1、Python爬虫基础
<code> # 爬虫基础代码
import requests
from bs4 import BeautifulSoup
url = "https://www.baidu.com"
content = requests.get(url).content
soup = BeautifulSoup(content, 'html.parser')
print(soup.title.string)
</code>
2、xpath与正则表达式的使用
<code> # xpath与正则表达式代码
from lxml import etree
tree = etree.HTML(content)
result = tree.xpath('//div[@id="content_left"]/h3/a/text()')
print(result)
</code>
二、Web框架Django
1、Django框架的基本概念
<code> # Django框架代码
from django.conf.urls import url
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello World!")
urlpatterns = [
url(r'^$', hello),
]</code>
2、Django框架中的模板和表单操作
<code> # Django模板和表单代码
from django.shortcuts import render
def index(request):
context = {}
context['hello'] = 'Hello World!'
return render(request, 'index.html', context)
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
def login(request):
if request.method == 'GET':
form = LoginForm()
else:
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
return render(request, 'login.html', {'form': form})</code>
三、数据库
1、SQLAlchemy使用
<code> # SQLAlchemy使用代码
import sqlalchemy
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('mysql+pymysql://root:password@localhost:3306/test', echo=True)
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(20))
password = Column(String(20))
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
user = User(name='Tom', password='123456')
session.add(user)
session.commit()</code>
2、Redis的使用
<code> # Redis使用代码
import redis
pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
r = redis.Redis(connection_pool=pool)
r.set('key', 'value')
print(r.get('key'))</code>
四、其他
1、Python的多线程使用
<code> # Python多线程代码
import threading
def hello(name):
print("Hello, %s" % name)
t = threading.Thread(target=hello, args=("Tom",))
t.start()
t.join()</code>
2、Python全局解释器锁(GIL)问题
Python的多线程是有GIL限制的,导致Python无法真正实现多线程并发,而是使用了类似于协程的方式进行伪并发。这是值得注意的问题。
通过学习Python老男孩21期视频,我们可以从爬虫基础、Django框架、数据库、多线程以及Python全局解释器锁等多个方面全面了解Python的应用,帮助我们更好的掌握Python编程。